排序后,pandas merge_asof键必须排序错误

问题描述 投票:3回答:1

我想将一个目标列从一个数据框合并到另一个数据框。合并的数据框具有更多的键,它们很接近,但与原始数据帧不完全匹配。请参阅以下示例:

原始数据帧(FDMA)

DMA 
130506  
130510  
130512  
130555  
130556  

合并数据框(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:右键必须排序错误。我已对值进行排序并重置索引,但仍然会收到错误。任何帮助表示赞赏!

python pandas merge
1个回答
4
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.