我在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()
答案 0 :(得分:3)
使用groupby
and transform
构建一个新列,该列的索引与被分组的列相同。
df['teacher average'] = df.groupby('teacher')['student grade'].transform('mean')