python - 在 Pandas 数据框中使用groupby时如何连接集合?

标签 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 时,我想更新集合。如果它是一个 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])

关于python - 在 Pandas 数据框中使用groupby时如何连接集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32967201/

相关文章:

python - python Web浏览器中的400错误请求

python - 如何在一个张量板选项卡中显示多个图像,就像在 tf-object-detection-api 中完成的那样

python - 当轮廓部分超出可见区域时删除重复的 matplotlib 轮廓标签

python - 自定义信息提取 (NER) 的最佳方法

python - 根据赔率为竞争者分配号码

Python:在比较它们之前我需要对字典进行排序吗?

python - 根据条件删除数据框中的行,数据框与列表 bool 值?

python - 将系列分配给具有不相等索引的 DataFrame

python - 如何从一个表中删除所有出现的数字,并从另一个表中查找数字?

python - Pandas groupby 然后枢轴没有返回所需的输出