具有以下数据框,用户事件跨越 2 天 :
user score
0 A 10
1 A 0
2 B 5
我想计算平均用户得分 那个时候并将结果转换为所有行:
import pandas as pd
df = pd.DataFrame({'user' : ['A','A','B'],
'score': [10,0,5]})
df["avg"] = df.groupby(['user']).transform("sum")["score"]
df.head()
这可以给我一些每个用户:
user score avg
0 A 10 10
1 A 0 10
2 B 5 5
现在我想将每个分数除以天数 (2) 得到:
user score avg
0 A 10 5
1 A 0 5
2 B 5 2.5
这可以在我计算总和的同一行上完成吗?
最佳答案
您可以分割输出 Series
来自 2
:
df = pd.DataFrame({'user' : ['A','A','B'],
'score': [10,0,5]})
df["avg"] = df.groupby(['user']).transform("sum")["score"] / 2
print (df)
user score avg
0 A 10 5.0
1 A 0 5.0
2 B 5 2.5
关于python pandas - 转换自定义聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61476188/