Python 在数据帧中使用groupby时如何连接集合?

Python 在数据帧中使用groupby时如何连接集合?,python,pandas,Python,Pandas,这是我的数据帧: > df a b 0 1 set([2, 3]) 1 2 set([2, 3]) 2 3 set([4, 5, 6]) 3 1 set([1, 34, 3, 2]) 现在,当我groupby时,我想更新集合。如果是列表,则没有问题。但我的命令的输出是: > df.groupby('a').sum() a b

这是我的数据帧:

> df
       a             b
    0  1         set([2, 3])
    1  2         set([2, 3])
    2  3      set([4, 5, 6])
    3  1  set([1, 34, 3, 2])
现在,当我
groupby
时,我想更新集合。如果是
列表
,则没有问题。但我的命令的输出是:

> df.groupby('a').sum()

a         b                
1             NaN
2     set([2, 3])
3  set([4, 5, 6])  
在groupby中,我应该如何更新集合?我正在寻找的输出如下所示:

a         b                
1     set([2, 3, 1, 34])
2     set([2, 3])
3     set([4, 5, 6])  

这可能接近你想要的

df.groupby('a').apply(lambda x: set.union(*x.b))
在这种情况下,它需要集合的并集

如果需要保留列名,可以使用:

df.groupby('a').agg({'b':lambda x: set.union(*x)}).reset_index('a')
结果:

    a   b
0   1   set([1, 2, 3, 34])
1   2   set([2, 3])
2   3   set([4, 5, 6])

谢谢,它解决了集合问题,但列名重命名为0。为什么会发生这种情况?因为结果是一个系列,所以没有列名称。我添加了一个方法,可以在需要时保留列名。