我正在尝试将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列中的最终列表是否包含重复项并不重要。可以对它们进行重复数据删除或保留重复数据,无论哪种方式都可以达到我的目的。
答案 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]