我使用这个(有点kludgy)R函数来合并data.frames并保持其中一个的顺序:
MergeMaintainingOrder = function(Ordered,Unordered,ByWhatColumn){
Ordered$TEMPINDEX = 1:length(Ordered[,1])
MergedData = merge(Ordered,Unordered,by=ByWhatColumn)
MergedData = MergedData[order(MergedData$TEMPINDEX),]
MergedData$TEMPINDEX = NULL
return(MergedData)
}
我怎样才能在熊猫中完成同样的事情?有没有更少的kludgy方式或我应该只重写相同的功能?
谢谢,
-N
答案 0 :(得分:1)
在pandas中,合并会重置索引,但您可以通过在执行合并之前重置索引来轻松解决此问题。重置索引将创建一个名为“index”的新列,然后您可以使用该列在合并后重新创建索引。例如:
Ordered.reset_index().merge(Ordered, Unordered, on=ByWhatColumn).set_index('index')
有关更多讨论,请参阅此question/answer(给@WouterOvermeire提示)