2015-10-15 36 views
3

合併兩個重疊行的deedle幀的最佳方式是什麼?不過,我想保持行的獨特性。據我所知,merge()不允許重疊行。如何合併重疊行中的數據框?

+0

什麼是行鍵?你想要合併後的行鍵是什麼? (換句話說,對於單個鍵有多個值是否有意義?) –

+0

所以如果我有兩個幀,它們都有列「id」和「name」,df1有2行id = 1,name = John,和id = 2,name = Mike,並且df2有兩行,兩個id = 1,name = John,id = 3,name = Bob。我想結合兩個框架和新的框架有3個獨特的行,約翰,邁克和鮑勃。對這篇文章的結構感到抱歉。我不知道如何在這裏製作表格 – alexshchep

回答

2

如果行鍵只是序號並且沒有意義,那麼您可能只想用新的序號索引替換鍵。可悲的是,合併的沒有內置的版本,會爲你做這個,但是你可以寫這樣的事情:

var df1Ord = df1.IndexRowsWith(Enumerable.Range(0, df1.RowCount)); 
var df2Ord = df2.IndexRowsWith(Enumerable.Range(df1.RowCount, df2.RowCount)); 
var res = df1Ord.Merge(df2Ord); 

在這裏,我們只是用新的非重疊鍵替換行鍵,然後合併他們。

我覺得有一個方法,這將是很好的,所以隨時打開Deedle GitHub頁面上的問題,併發送拉請求!

+0

這很有效,但現在我在新框架中重複了行。我應該如何去刪除基於一列(「ID」)的冗餘行? – alexshchep

+1

謝謝!我爲此搜查了這麼久。來自Python Pandas我覺得Deedle是一個柺杖,真的想知道爲什麼這些基本功能缺失? – CodeMonkey