返回

merge_asof pandas python(多行)

发布时间:2022-08-24 17:47:32 172
# node.js

我有两个 python数据框。它们的行需要由两个值(X,Y)坐标匹配,这两个值不是完全匹配但在公差范围内。我需要将 df2 中的“VAL”项添加到 df1 中的“VAL”项,其中(X,Y ) 匹配。

我尝试使用 merge_asof 没有运气。我想如果我可以让 merge_asof 以我期望的方式工作,我可以对 df2 进行添加和重新分配,但到目前为止我无法进行匹配。

这是我尝试过的代码示例。

d1 = [ ['wp1',0.0,0.0,10],['wp2',10.0,10.0,5],['wp3',7.0,7.0,5]]

d2 = [ ['wp4',0.1,0.1,5],['wp5',10.2,10.2,8]]

headers = ['Name','X','Y','VAL']

df1 = pd.DataFrame(d1,columns = headers)

df2 = pd.DataFrame(d2,columns = headers)

#attempt at solution just to find matching values

df3 = pd.merge_asof(df1.sort_values('VAL'), df2.sort_values('VAL'),on=['VAL'],by=['X','Y'],direction='nearest',tolerance=1)

#desired solution is to sum 'VAL' from df2 into df1 

d1_final = [ ['wp1',0.0,0.0,10+5],['wp2',10.0,10.0,5+8]]

df1_final = pd.DataFrame(d1_final,columns = headers)

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像