我想从“域”列中找出哪个组的违反率最高。
我尝试使用groupby。我想在哪里创建另一个df并在那里存储Breach和Meet的价值总和,但是,我不知道如何将价值总和存储到新的数据框上以进行违反和满足。
new_df2 = new_df.groupby('Domain')['Breach'].sum()
ID Domain Breach Meet
0 A1 Finance 4 6
1 B1 Finance 5 3
2 C1 IT 2 3
3 D1 IT 7 3
输出应在新数据框中:
Domain Breach Meet %Breach %Meet
0 Finance 9 9 50% 50%
1 IT 9 6 60% 40%
答案 0 :(得分:2)
您可以先调整groupby
,然后在调整输出后使用concat
s=df.groupby('Domain').sum()
s=pd.concat([s,s.div(s.sum(1),axis=0).mul(100).astype(str)+'%'],1)
Out[138]:
Breach Meet Breach Meet
Domain
Finance 9 9 50.0% 50.0%
IT 9 6 60.0% 40.0%