我想将目标列从一个数据框合并到另一个数据框。合并后的数据框具有更多的关键字,并且它们很接近,但与原始数据框不完全匹配。请参见下面的示例:
原始 Dataframe (FDMA)
DMA
130506
130510
130512
130555
130556
合并 Dataframe (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')
这就是我所期待的
DMA Distance (Miles)
130506 303.87
130510 291.83
130512 XXX
130555 XXX
130556 XXX
我尝试了上面的代码,得到了一个ValueError:右键必须排序错误。我已经对值进行了排序并重置了索引,但仍然得到错误。任何帮助是赞赏!
2条答案
按热度按时间bxgwgixi1#
错误代码为“ValueError:右键必须排序”,最有效的解决方案是在合并键列中添加
sort_values
:这确保了 Dataframe 按照
pd.merge_asof
的要求在连接键上排序。vuktfyat2#
此外,当你在
on
列中有NA时,pandas也会出现同样的错误,所以在合并之前,你应该使用df.dropna()
来解决这个问题。