gpt4 book ai didi

python - 在包含一列列表的数据帧组行中

转载 作者:行者123 更新时间:2023-12-01 09:31:34 25 4
gpt4 key购买 nike

我有以下数据框(df)(所有列都包含列表,类型除外,包含字符串)

Type    Components        names
Zebra [hand,arm,nose] [bubu,kuku]
Zebra [eyes,fingers] [gaga,timber]
Zebra [paws] []
Lion [teeth] [scar]
Tiger [fingers] [figgy]

我想根据类型对它们进行分组,因此输出如下:

Type    Components                           Names
Zebra [hand,arm,nose,eyes,fingers,paws] [bubu,kuku,gaga,timber]
Lion [teeth] [scar]
Tiger [fingers] [figgy]

我尝试过这样的事情:

df.groupby('role')

我最终也没有成功使用 .agg。

最佳答案

选项 1
groupby + sum
未优化,不考虑重复

df.groupby('Type', sort=False, as_index=False).sum()

Type Components names
0 Zebra [hand, arm, nose, eyes, fingers, paws] [bubu, kuku, gaga, timber]
1 Lion [teeth] [scar]
2 Tiger [fingers] [figgy]
<小时/>

选项 2
groupby + agg + itertools.chain
考虑重复,并且非常有效地进行扁平化

from itertools import chain
df.groupby('Type', sort=False, as_index=False).agg(
lambda x: list(set(chain.from_iterable(x)))
)

Type Components names
0 Zebra [eyes, hand, paws, arm, fingers, nose] [timber, bubu, gaga, kuku]
1 Lion [teeth] [scar]
2 Tiger [fingers] [figgy]

关于python - 在包含一列列表的数据帧组行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com