gpt4 book ai didi

python - 在 Python/Pandas 中计算另一列的行平均值

转载 作者:行者123 更新时间:2023-11-30 22:12:01 31 4
gpt4 key购买 nike

我有一个数据框如下:

user | profit
-------------
Anna | 1.0
Bell | 2.0
Anna | 2.0
Chad | 5.0
Bell | 4.0
Anna | 3.0

我需要计算用户级别上每一行的平均值,也就是说,每次我看到同一个用户时,我都会计算他/她迄今为止的利润平均值。

例如,Anna 的第一个利润平均值为 1.0,第二个利润平均值为 1.5,依此类推。

期望的结果如下:

user | profit | mean
--------------------
Anna | 1.0 | 1.0
Bell | 2.0 | 2.0
Anna | 2.0 | 1.5
Chad | 5.0 | 5.0
Bell | 4.0 | 3.0
Anna | 3.0 | 2.0

有什么建议可以在 Python/Pandas 中这样做吗?

import pandas as pd

record = pd.DataFrame({
"user": ("Anna", "Bell", "Anna", "Chad", "Bell", "Anna"),
"profit": (1.0, 2.0, 2.0, 5.0, 4.0, 3.0)
})

谢谢!

最佳答案

使用GroupBy.transformrolling意思:

df['mean'] = (df.groupby('user')['profit']
.transform(lambda x: x.rolling(len(x), min_periods=1).mean()))
print (df)
user profit mean
0 Anna 1.0 1.0
1 Bell 2.0 2.0
2 Anna 2.0 1.5
3 Chad 5.0 5.0
4 Bell 4.0 3.0
5 Anna 3.0 2.0

关于python - 在 Python/Pandas 中计算另一列的行平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51244253/

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