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_id0 100 2
1 100 2
2 200 1
希望得到结果
goods_price user_id0 100 2
1 200 1
回答:
需要先去重,再分组统计
user_df.drop_duplicates().groupby(['goods_price'], as_index=False)['user_id'].count()
回答:
请参考:
python">import pandas as pduser_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