Предположим, у меня есть следующие данные:
from pandas import DataFrame
boxes = {'Students': ['Alice','Alice','Alice','Bob','Bob','Red','Red','Red','Red'],
'Subjects': ['Math','History','Economics','Economics','Math','Sociology','Ethics','History','Economics'],
'Grade': [100,75,85,95,100,85,75,78,82]
}
df = DataFrame(boxes, columns= ['Students','Subjects','Grade'])
Я хочу найти среднюю оценку и количество классов, которые прошли каждый из Alice
и Red
:
Итак мне нужен результат:
GPA Count
Students
Alice 86.67 3
Red 80.00 4
Есть ли встроенные pandas функции, которые это делают? Я понимаю, что следующий код
g = df.groupby('Students')['Grade']
df1 = pd.concat([g.mean().round(2), g.count()], axis=1)
df1.columns = ['GPA', 'Count']
найдет то, что я хочу, для всех студентов, но я хочу иметь возможность найти это для определенных c студентов.