分组和汇总包含列表的数据框行

时间:2019-08-06 21:17:52

标签: python-3.x pandas pandas-groupby

我正在尝试将pandas数据框中的类似列表合并为1行。我有以下代码:

import pandas as pd
df = pd.DataFrame( {'A' : [1,1,2,2], 'B' : [["a","b"],["c","d"],["e","f"], 
["g","h"]]})
df2 = df.groupby(['A'], as_index=False).agg(list)
print(df2)

哪个会产生以下输出:

   A                 B
0  1  [[a, b], [c, d]]
1  2  [[e, f], [g, h]]

这会在输出中生成列表列表,这不是我想要的。

是否有一种简单的方法可以对列表进行分组和汇总,以便在B列中获得1个长列表,从而获得一个像下面的示例这样的数据框?

   A             B
0  1  [a, b, c, d]
1  2  [e, f, g, h]

注意:B列中的最终列表是否包含重复项并不重要。可以对它们进行重复数据删除或保留重复数据,无论哪种方式都可以达到我的目的。

1 个答案:

答案 0 :(得分:1)

sum

df.groupby('A', as_index=False).agg(sum)

输出:

   A             B
0  1  [a, b, c, d]
1  2  [e, f, g, h]