gpt4 book ai didi

python - 按两列分组并计算 Pandas 中每个组合的出现次数

转载 作者:太空狗 更新时间:2023-10-29 22:21:27 25 4
gpt4 key购买 nike

我有以下数据框:

data = pd.DataFrame({'user_id' : ['a1', 'a1', 'a1', 'a2','a2','a2','a3','a3','a3'], 'product_id' : ['p1','p1','p2','p1','p1','p1','p2','p2','p3']})

product_id user_id
p1 a1
p1 a1
p2 a1
p1 a2
p1 a2
p1 a2
p2 a3
p2 a3
p3 a3

在实际情况下可能还有其他一些列,但我需要做的是按数据框按 product_id 和 user_id 列分组并计算每个组合的数量并将其添加为新数据框中的新列

输出应该是这样的:

user_id product_id  count
a1 p1 2
a1 p2 1
a2 p1 3
a3 p2 2
a3 p3 1

我试过下面的代码:

grouped=data.groupby(['user_id','product_id']).count()

但结果是:

user_id product_id
a1 p1
p2
a2 p1
a3 p2
p3

实际上对我来说最重要的是有一个包含出现次数的列名计数,我稍后需要使用该列。

最佳答案

也许这就是你想要的?

>>> data = pd.DataFrame({'user_id' : ['a1', 'a1', 'a1', 'a2','a2','a2','a3','a3','a3'], 'product_id' : ['p1','p1','p2','p1','p1','p1','p2','p2','p3']})
>>> count_series = data.groupby(['user_id', 'product_id']).size()
>>> count_series
user_id product_id
a1 p1 2
p2 1
a2 p1 3
a3 p2 2
p3 1
dtype: int64
>>> new_df = count_series.to_frame(name = 'size').reset_index()
>>> new_df
user_id product_id size
0 a1 p1 2
1 a1 p2 1
2 a2 p1 3
3 a3 p2 2
4 a3 p3 1
>>> new_df['size']
0 2
1 1
2 3
3 2
4 1
Name: size, dtype: int64

关于python - 按两列分组并计算 Pandas 中每个组合的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933071/

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