2015-10-15 53 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