Как посчитать значения в строках по нескольким столбцам с помощью панд? - PullRequest
0 голосов
/ 11 января 2019

Я новичок в Python. Буду признателен за любые советы относительно этого метода.

Я использую pandas в python и у меня есть такой фрейм данных (CSV-файл), но с 195 столбцами и ~ 300 отдельными лицами.

Index  IID    Sex    Disease 1   Disease 2  Disease 3

0      001     F     Absent        Absent   Present  
1      002     M     Absent        Absent   Present   
2      003     M     Present       Absent   Present 

Я хочу посчитать количество людей с каждой болезнью, это означает, что мне нужно посчитать значение «Настоящее время» по 195 столбцам. Тогда я хотел бы сгруппировать по полу. Как я могу это сделать?

Лучшее, что я смог сделать, это: GROUP=df1.loc[:,["SEX","Disease1","Disease2", "Disease3"].groupby('SEX') GROUP.count(), но это просто подсчитало все записи в указанных столбцах, сгруппированных по полу. Я не знаю, как сделать то же самое, но считаю только записи со значением «Present» в каждой строке или, по крайней мере, для подсчета количества записей для каждого из значений в строках («Present», «Absent», «» Unable_to_Code ").

1 Ответ

0 голосов
/ 11 января 2019

Вот решение, которое я придумал:

pd.merge(df['Sex'].to_frame(), df.filter(like='Disease')[df.filter(like='Disease') == 'Present'], left_index=True, right_index=True).groupby('Sex').count()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...