1

我使用这个(有点笨拙的)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)
}

我怎样才能在熊猫中完成同样的事情?有没有一种不那么笨拙的方法,还是我应该重写相同的函数?

谢谢,

-N

4

1 回答 1

1

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

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

有关更多讨论,请参阅此问题/答案(@WouterOvermeire 的帽子提示)

于 2013-03-30T13:39:23.243 回答