python分段求均值,python–扩展由pandas中的多个列分组的平
均值
我有⼀个数据框,我想计算扩展平均值超过⼀列(quiz_score),但需要按两个不同的列(urid和week)进⾏分组.数据如下所⽰:
data = {"urid": ['1','1','1','1','1','1','1','1', '2','2','2','2','2','2','2','2'],\
"week": [1,1,2,2,3,3,4,4, 1,2,2,3,3,4,4,5],\
"quiz_score": [12, 14, 14, 15, 9, 15, 11, 14, 15, 14, 15, 13, 15, 10, 14, 14]}
>>> df = pd.DataFrame(data, columns = ['urid', 'week', 'quiz_score'])
>>> df
urid week quiz_score
0 1 1 12
1 1 1 14
金字旁的汉字
2 1 2 14
3 1 2 15
4 1 3 9
比划比划5 1 3 15
6 1 4 11
7 1 4 14
8 2 1 15
9 2 2 14
10 2 2 15
11 2 3 13
12 2 3 15
13 2 4 10
14 2 4 14
15 2 5 14
我需要计算每周⽤户ID的扩展⽅式 – 也就是说,对于每个⽤户每周,我需要他们在前⼏周的平均测验得分.我知道解决⽅案将涉及以某种形式使⽤shift()和pd.expanding_mean()或.expanding().mean(),但我⽆法将分组和移位正确 – 即使我尝试不移动,结果没有正确分组,似乎只是扩展⾏的意思,好像根本没有分组:
故宫博物院资料
要清楚,正确的结果将如下所⽰:
urid week expanding_mean_quiz_score
0 1 1 NA
1 1
电脑系统
2 13
甜胚子的做法
2 1
3 13.75
海边捉鱼3 1
4 13.166666
4 1
5 13什么生辉四字成语
5 1
6 13
6 2 1 NA
7 2 2 15
8 2 3 14.666666
福州美食9 2 4 14.4
10 2 5 13.714
11 2 6 13.75
请注意,每个⽤户/周的expanding_mean_quiz_score是该⽤户在前⼏周的分数的平均值.谢谢你的帮助,我从来没有使⽤过expanding_mean()⽽且我在这⾥难过.