Bri*_*ian 3 python group-by pandas
我有这个 df
df = pd.DataFrame(dict(
A=['b', 'a', 'b', 'c', 'a', 'c', 'a', 'c', 'a', 'a'],
B=[[0, 2, 3, 1],
[9, 6, 7, 2],
[6, 0, 1, 4],
[9, 2, 5, 1],
[5, 1, 4, 8],
[8, 5, 6, 6],
[0, 9, 0, 0],
[2, 6, 1, 8],
[7, 3, 2, 6],
[8, 7, 1, 9]]
))
Run Code Online (Sandbox Code Playgroud)
我想分组'A'并联合所有列表'B'
既不工作df.groupby('A').B.union()也不df.groupby('A').B.apply(set.union)工作.
我想要结果
A
a {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
b {0, 1, 2, 3, 4, 6}
c {1, 2, 5, 6, 8, 9}
Name: B, dtype: object
Run Code Online (Sandbox Code Playgroud)
问题是您需要在应用联合之前首先将它们作为集转换.一种解决方案是使用sum连接组,然后使用转换为setmap
In [28]: df.groupby('A').B.sum().map(set)
Out[28]:
A
a {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
b {0, 1, 2, 3, 4, 6}
c {1, 2, 5, 6, 8, 9}
dtype: object
Run Code Online (Sandbox Code Playgroud)