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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序后,pandas merge_asof键必须排序错误相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

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

以上是关于排序后,pandas merge_asof键必须排序错误的主要内容,如果未能解决你的问题,请参考以下文章

Pandas merge_asof 显示两个数据框的日期

使用 pandas.merge_asof 进行完全外连接

Pandas:用于合并两个多索引 DataFrame 的类似 merge_asof 的解决方案?

如何使 pandas merge_asof 不仅包含所有事件

数据集成变换与规约1

选择排序