gpt4 book ai didi

python - 根据另一列对值进行分组并将这些值相加

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:43 25 4
gpt4 key购买 nike

我目前正在对模拟 MMORPG 的微交易数据进行模拟分析。这是 CSV 文件中几行的示例:

PID Username    Age Gender ItemID   Item Name   Price

0 Jack78 20 Male 108 Spikelord 3.53
1 Aisovyak 40 Male 143 Blood Scimitar 1.56
2 Glue42 24 Male 92 Final Critic 4.88

这就是事情变得冒险的地方 - 我成功地使用了 groupby 函数来获得一个结果,其中购买按买家的性别分组。

test = purchase_data.groupby(['Gender', "Username"])["Price"].mean().reset_index()

得到结果(为了便于阅读而被截断)

                    Gender        Username  Price
0 Female Adastirin33 $4.48
1 Female Aerithllora36 $4.32
2 Female Aethedru70 $3.54
...
29 Female Heudai45 $3.47
.. ... ... ...
546 Male Yadanu52 $2.38
547 Male Yadaphos40 $2.68
548 Male Yalae81 $3.34

我目前的目标是找出每个性别作为一个整体花费的平均金额。我想象如何通过创建一种方法来检查男性/female/other 标签放在用户名前面,然后将那个人花费的平均费用加到运行总计中,然后我可以稍后对其进行操作。不幸的是,我是 Python 的新手——我不知道从哪里开始,或者我是否走在正确的轨道上。

附录:jezrael 误解了这个问题的意图。虽然他为我提供了一种清理输出序列的方法,但他没有为我的主要目标提供了一种方法甚至暗示,即按性别将花费的钱组合在一起(除了我的第一个片段外,其他所有片段都显示了女性,但在 csv 文件的下方还有男性,我不想用太多意大利面堵塞页面)并将它们放在一个变量中。

附录 2:jezrael 建议的另一种解决方案,

purchase_data.groupby(['Gender'])["Price"].sum().reset_index()

创造

                  Gender     Price
0 Female $361.94
1 Male $1,967.64
2 Other / Non-Disclosed $50.19

遗憾的是,由于某些用户在文件中购买了多个项目,因此使用这个新系列中的数据(这将产生此 csv 中记录的每次购买的平均价格)并不是我想要的.我正在寻找一种解决方案,让我可以从我的测试框架中提取每个用户花费的平均金额,按性别分开和分组。

最佳答案

在我看来,这就像您从数据库表的角度来思考。默认情况下,groupby() 不返回一个——组标签不显示为列,而是显示为行索引。但是你可以让它以这种方式代替:(注意 groupby()as_index 参数)

mean = purchase_data.groupby(['Gender', "SN"], as_index=False).mean()
gender = mean.groupby(['Gender'], as_index=False).mean()

那么你想要的可能是gender[['Gender','Price']]

关于python - 根据另一列对值进行分组并将这些值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52331326/

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