2013-03-30 40 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)