Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
379 views
in Technique[技术] by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

需要先去重,再分组统计

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...