Python-熊猫结合了两个提供不同值的数据框

时间:2020-05-03 20:05:44

标签: python pandas

我有两个带有两列的不同数据框,我想将它们合并并获取它们的B列总和。问题是数据框1中有一些我想保留的数据。我会写一个例子,这样才有意义

数据框1

Columns A Column B
House     walls,doors,rooms
Animal    Legs,nose,eyes
car       tires,engine 

数据框2

Column A  Column B
House     windows,kitchen
Bike      wheels,bicycle chain

所需结果

Column A  Column B
House     walls,doors,rooms,windows,kitchen
Animal    Legs,nose,eyes
Car       tires,engine
Bike      wheels,bicycle chain

合并功能无济于事,我尝试使用pd.concat,然后以某种方式聚合数据,但无济于事。有人知道如何解决吗?

1 个答案:

答案 0 :(得分:4)

pd.concat([df1, df2]).groupby("Column A")["Column B"].apply(', '.join).reset_index()

在精简了数据框之后,将值按A列分组,然后使用apply在B列中合并分组的字符串,最后用reset_index()恢复A列。

编辑:扩展评论

要删除重复项,可以使用set数据结构,该结构仅保留放入其中的每个元素的单个版本。对于每行x,将单词拆分,然后将单词列表转换为一个集合:

df4 = df3["Column B"].apply(lambda x: set(x.split(", "))).reset_index()

请注意,此后,列B将包含集合。我将让您弄清楚如何使用类似的模式将集合从字符串转换为字符串。