合并,同时保持R和熊猫的秩序

时间:2013-03-30 13:10:57

标签: python r dataframe pandas

我使用这个(有点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

1 个答案:

答案 0 :(得分:1)

在pandas中,合并会重置索引,但您可以通过在执行合并之前重置索引来轻松解决此问题。重置索引将创建一个名为“index”的新列,然后您可以使用该列在合并后重新创建索引。例如:

Ordered.reset_index().merge(Ordered, Unordered, on=ByWhatColumn).set_index('index')

有关更多讨论,请参阅此question/answer(给@WouterOvermeire提示)