如何使用Pandas计算跨多列的行中的值?

时间:2019-01-10 22:14:53

标签: pandas group-by count multiple-columns rows

我是Python新手。如果您对此方法有任何建议,我将不胜感激。

我在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 :(得分:0)

这是我想出的解决方案:

pd.merge(df['Sex'].to_frame(), df.filter(like='Disease')[df.filter(like='Disease') == 'Present'], left_index=True, right_index=True).groupby('Sex').count()