fir*_*fly 5 merge dataframe python-2.7 pandas
pandas 有没有办法通过使用条件语句合并两个不同长度的数据帧?例如:
pd.merge(df1, df2, on=<condition>)
Run Code Online (Sandbox Code Playgroud)
例如,假设有两个数据框 df1 和 df2 分别包含 10,000 个和 15,000 个对象。我想使用两个目录之间的 x 和 y 位置来匹配常见对象。应在 df1 和 df2 之间匹配对象,以使匹配的对象彼此落在 1m 半径范围内。
除了 x 和 y 之外,两个数据帧之间没有任何共同点。
到目前为止我能想到的最好的方法是使用 for 循环。我确信有更快更好的方法来做到这一点?
delta = 1.0
result = pd.concat([df1, df2], axis=1)
for index, values in result.T.iteritems():
if len(result[((result.x.iloc[:,1]-delta)<values.x.iloc[0]) & ((result.x.iloc[:,1]+delta)>values.x.iloc[0]) &
((result.y.iloc[:,1]-delta)<values.y.iloc[0]) & ((result.y.iloc[:,1]+delta)>values.y.iloc[0])])>0 :
print values.id
Run Code Online (Sandbox Code Playgroud)