如何找到连续不同值的均值/中位数?

时间:2017-07-05 00:48:06

标签: python csv pandas data-analysis

我在csv文件中有一个如下所示的数据集:

teacher         student         student grade
Jon             marin           99
Jon             Rob             81
Jon             marly           90
Bon             martin          76
Bon             marie           56
Ton             Seri            43
Ton             Loku            99

我需要一个输出,其中每个教师的平均值基于学生获得的成绩。这将是这样的,

teacher         student         student grade       teacher Average
Jon             marin           99                  90
Jon             Rob             81                  90
Jon             marly           90                  90
Bon             martin          76                  66
Bon             marie           56                  66
Ton             Seri            43                  71
Ton             Loku            99                  71

最简单的方法是什么?

这是我的方法,但它似乎不起作用。

import pandas as pd
df = pd.read_csv('test.csv', names=['teacher', 'student', 'student grade','Average'])
df.groupby('Star Rating').mean()

1 个答案:

答案 0 :(得分:3)

使用groupby and transform构建一个新列,该列的索引与被分组的列相同。

df['teacher average'] = df.groupby('teacher')['student grade'].transform('mean')