python pandas 分组统计多出一列

python pandas 分组统计多出一列

想要统计每个价格支付的人数,同一个价格下同一个用户即使支付了多次也算作1人次,如下,100的价格 有用户1000和2000,这样算作两个人

 user_price = [

{'user_id':1000,'goods_price':100},

{'user_id':1000,'goods_price':100},

{'user_id':2000,'goods_price':100},

{'user_id':1000,'goods_price':200},

{'user_id':2000,'goods_price':100},

]

user_df = pd.DataFrame(user_price)

print(user_df.groupby(['goods_price','user_id'],as_index=False)['user_id'].count())

结果输出 多了1行

   goods_price  user_id

0 100 2

1 100 2

2 200 1

希望得到结果

   goods_price  user_id

0 100 2

1 200 1


回答:

需要先去重,再分组统计

user_df.drop_duplicates().groupby(['goods_price'], as_index=False)['user_id'].count()


回答:

请参考:

python">import pandas as pd

user_price = [

{

'user_id': 1000,

'goods_price': 100

},

{

'user_id': 1000,

'goods_price': 100

},

{

'user_id': 2000,

'goods_price': 100

},

{

'user_id': 1000,

'goods_price': 200

},

{

'user_id': 2000,

'goods_price': 100

},

]

user_df = pd.DataFrame(user_price)

print(

user_df.groupby(['goods_price'

])['user_id'].nunique().reset_index(drop=False))

以上是 python pandas 分组统计多出一列 的全部内容, 来源链接: utcz.com/a/158341.html

回到顶部