pandas使用条件合并两个数据帧

时间:2015-08-10 05:17:20

标签: python-2.7 pandas merge dataframe

pandas有没有办法通过使用条件语句合并两个不同长度的数据帧? 例如:

pd.merge(df1, df2, on=<condition>)

例如,假设有两个数据帧,分别为10,000和15,000个对象的df1和df2。 我想使用它们的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

0 个答案:

没有答案