Объединяя строки, вычисляя среднее / сумму - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть следующий фрейм данных:

a=pandas.dataframe(col=["hschool","year","type","grade","stud"],[[0,2010,pu,5,1],[1,2011,pri,3,10],[2,2010,pu,2,3],[1,2010,pri,3,7],[2,2011,pu,2,8],[0,2011,pu,1,8],[1,2010,pri,0,2],[3,2010,pu,6,3]])

И я хочу удалить столбец «hschool» и объединить с разными значениями «year» и «type» со средним значением «grade» и суммой «stud». Я попытался использовать следующее, но я получаю как среднюю оценку, так и среднее количество студентов.

a.drop(labels=["hschool"],axis=1,inplace=True)
a = a.groupby(["year","type"])
a=a.mean()

Есть предложения?

1 Ответ

0 голосов
/ 28 апреля 2018

Вы хотите использовать .agg() в группе, если вам нужны разные функции разных столбцов. Замените последние две строки на:

a = a.groupby(["year","type"]).agg({'grade': 'mean', 'stud': 'sum'})
#              grade  stud
#year type                
#2010 pri   1.500000     9
#     pu    4.333333     7
#2011 pri   3.000000    10
#     pu    1.500000    16
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...