Jos*_*jua 4 python merge pandas
我想将目标列从一个数据框合并到另一个数据框。合并的数据帧具有更多的密钥,并且它们很接近,但是与原始数据帧不完全匹配。请参阅以下示例:
原始数据帧(FDMA)
DMA
130506
130510
130512
130555
130556
Run Code Online (Sandbox Code Playgroud)
合并数据框(ZC)
DMA Distance (Miles)
1305060 303.87
1305061 305.35
1305062 278.80
1305065 299.94
1305067 291.83
pd.merge_asof(FDMA,ZC[['DMA','Distance (Miles)']],on='DMA')
Run Code Online (Sandbox Code Playgroud)
这就是我所期望的
DMA Distance (Miles)
130506 303.87
130510 291.83
130512 XXX
130555 XXX
130556 XXX
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上面的代码并得到ValueError:右键必须排序错误。我已经排序了值并重置了索引,但仍然收到错误。任何帮助表示赞赏!
使用错误代码“ ValueError:必须对正确的键进行排序”,最有效的解决方案是sort_values在keys列上添加合并:
pd.merge_asof(FDMA,ZC[['DMA','Distance (Miles)']].sort_values('DMA'),on='DMA')
Run Code Online (Sandbox Code Playgroud)
这样可确保数据框按要求按连接键排序pd.merge_asof。