gpt4 book ai didi

python - Groupby 值依赖于数据框 pandas

转载 作者:太空宇宙 更新时间:2023-11-03 19:59:01 24 4
gpt4 key购买 nike

我有以下数据框:

df = pd.DataFrame([
(1, 1, 'term1'),
(1, 2, 'term2'),
(1, 1, 'term1'),
(1, 1, 'term2'),
(2, 2, 'term3'),
(2, 3, 'term1'),
(2, 2, 'term1')
], columns=['id', 'group', 'term'])

我想按 id 对其进行分组和group并计算该 id、组对的每个术语的数量。

所以最后我会得到这样的东西:

enter image description here

我能够通过使用 df.iterrows() 循环所有行来实现我想要的目标并创建一个新的数据框,但这显然效率低下。 (如果有帮助的话,我事先知道所有术语的列表,其中大约有 10 个)。

看起来我必须分组然后对值进行计数,所以我尝试使用 df.groupby(['id', 'group']).value_counts()这不起作用,因为 value_counts在 groupby 系列上运行,而不是在数据帧上运行。

无论如何,我可以在不循环的情况下实现这一目标吗?

最佳答案

我使用groupbysize

df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)

enter image description here

<小时/>

时间

enter image description here

1,000,000 行

df = pd.DataFrame(dict(id=np.random.choice(100, 1000000),
group=np.random.choice(20, 1000000),
term=np.random.choice(10, 1000000)))

enter image description here

关于python - Groupby 值依赖于数据框 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59369440/

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