我的数据框架mydf如下所示:
mydf
Index Feature ID Stuff1 Stuff2 1 True 1 23 12 2 True 1 54 12 3 False 0 45 67 4 True 0 38 29 5 False 1 32 24 6 False 1 59 39 7 True 0 37 32 8 False 0 76 65 9 False 1 32 12 10 True 0 23 15 ..n True 1 21 99
我正在尝试计算Feature每个ID(0或1)的True和False百分比,我正在为每个ID寻找两个输出:
Feature
ID
Feature ID Percent True 1 20% False 1 30% Feature ID Percent True 0 30% False 0 20%
我尝试了一些尝试,但是我开始获取所有列的计数,然后获取所有列的百分比。
这是我的错误尝试:
percentageID0 = mydf[ mydf['ID']==0 ].set_index(['Feature']).count() percentageID1 = mydf[ mydf['ID']==1 ].set_index(['Feature']).count() fullcount = (mydf.groupby(['ID']).count()).sum() print (percentageID0/fullcount) * 100 print (percentageID1/fullcount) * 100
认为我对groupby / index格式感到困惑。
可能是这样的:
In [73]: print pd.DataFrame({'Percentage': df.groupby(('ID', 'Feature')).size() / len(df)}) Percentage ID Feature 0 False 0.2 True 0.3 1 False 0.3 True 0.2