Подсчет и возврат среднего в Пандах - PullRequest
0 голосов
/ 27 июня 2018

Я занимаюсь проблемой Титаника Каггла.

Я пытаюсь вернуть количество и сумму в одном запросе к моему набору данных. Я знаю, что должен использовать функцию .agg где-то в моем запросе, но я не могу понять, где.

SexI - это столбец, который относится к полу пассажира, а AgeCat - это столбец, который я создал, чтобы лучше передавать данные о возрасте:

df[['AgeCat', 'SexI', 'PropSurvive']].groupby(['SexI','AgeCat'], as_index=False).agg(['mean', 'count']).sort_values(by=['SexI','AgeCat'], ascending=True)

Итак, в этом запросе, когда я заменяю agg(['mean', 'count']) на .mean, возвращает то, что я хочу, что является средним значением выживания для различных групп, которые я анализирую. Когда я заменяю на .count, он возвращает счет.

Но я не могу заставить их обоих вернуться в одном запросе. Прямо сейчас он дает мне KeyError: 'SexI', но я не очень понимаю, как.

Кстати, это похоже на запрос SQL, где вы бы select count(ROW) & mean(ROW)?

1 Ответ

0 голосов
/ 27 июня 2018

Я думаю, нужно reset_index и добавить столбец PropSurvive в список после groupby:

(df.groupby(['SexI','AgeCat'])['PropSurvive']
   .agg(['mean', 'count'])
   .reset_index() 
   .sort_values(by=['SexI','AgeCat'], ascending=True))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...