pandas merge_asof keys must be sorted错误

y4ekin9u  于 2023-06-28  发布在  其他
关注(0)|答案(2)|浏览(151)

我想将目标列从一个数据框合并到另一个数据框。合并后的数据框具有更多的关键字,并且它们很接近,但与原始数据框不完全匹配。请参见下面的示例:
原始 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:右键必须排序错误。我已经对值进行了排序并重置了索引,但仍然得到错误。任何帮助是赞赏!

bxgwgixi

bxgwgixi1#

错误代码为“ValueError:右键必须排序”,最有效的解决方案是在合并键列中添加sort_values

pd.merge_asof(FDMA,ZC[['DMA','Distance (Miles)']].sort_values('DMA'),on='DMA')

这确保了 Dataframe 按照pd.merge_asof的要求在连接键上排序。

vuktfyat

vuktfyat2#

此外,当你在on列中有NA时,pandas也会出现同样的错误,所以在合并之前,你应该使用df.dropna()来解决这个问题。

相关问题