pandas merge\u asof keys必须排序排序错误后排序

2024-10-01 11:30:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

原始数据帧(FDMA)

DMA 
130506  
130510  
130512  
130555  
130556  

合并数据帧(ZC)

^{pr2}$

这就是我所期待的

DMA     Distance (Miles)
130506  303.87
130510  291.83
130512  XXX
130555  XXX
130556  XXX

我尝试了上面的代码,得到了一个ValueError:right key must be sorted error。我已经对值进行了排序并重置了索引,但是仍然得到了错误。感谢任何帮助!在


Tags: 数据代码right示例目标原始数据zcxxx
2条回答

对于错误代码“ValueError:right keys must be sorted”,最有效的解决方案是在keys列的merge中添加sort_values

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

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

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

相关问题 更多 >