2013-03-30 35 views
1

我用这个(有点缺憾)R功能合并data.frames,并保持他们的一个顺序:我怎样才能做到同样的事情在大熊猫合并而R中维持秩序和熊猫

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

回答

1

在大熊猫合并复位指数,但你可以很容易地之前解决此通过重新索引执行合并。重置索引将创建一个名为“index”的新列,然后可以在合并后使用它重新创建索引。例如:

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

见本question/answer更多的讨论(帽尖到@WouterOvermeire)