我是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”)。
答案 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()