Как суммировать на основе группировки в панде dataframe? - PullRequest
1 голос
/ 03 июля 2019

У меня есть pf для данных панд, который содержит:

major       men        women        rank

Art         5          4            1
Art         3          5            3
Art         2          4            2
Engineer    7          8            3
Engineer    7          4            4
Business    5          5            4
Business    3          4            2

По сути, мне нужно найти общее количество студентов, включая мужчин и женщин, по одному на каждого специалиста, независимо от колонки рангов. Так, например, по искусству общее количество должно составлять все мужчины + женщины, всего 23, инженер 26, бизнес 17.

Я пытался

df.groupby(['major_category']).sum()

Но это отдельно суммирует мужчин и женщин, а не объединяет их итоги.

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

Просто добавьте оба столбца, а затем groupby:

(df.men+df.women).groupby(df.major).sum()

major
Art         23
Business    17
Engineer    26
dtype: int64
2 голосов
/ 03 июля 2019

melt(), затем groupby():

df.drop('rank',1).melt('major').groupby('major',as_index=False).sum()

      major  value
0       Art     23
1  Business     17
2  Engineer     26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...