在pandas数据框架中使用groupby时,如何连接集合?[英] how to concat sets when using groupby in pandas dataframe?

本文是小编为大家收集整理的关于在pandas数据框架中使用groupby时,如何连接集合?的处理方法,想解了在pandas数据框架中使用groupby时,如何连接集合?的问题怎么解决?在pandas数据框架中使用groupby时,如何连接集合?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

这是我的数据框:

> 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 时,我想更新集合.如果是 list 则没有问题.但是我的命令输出是:

> 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])

本文地址:https://www.itbaoku.cn/post/1727995.html