我使用此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

最佳答案

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

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


请参阅此question/answer以获取更多讨论(@WouterOvermeire的技巧提示)

关于python - 合并并保持R和 Pandas 的秩序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15718908/

10-08 22:41