查找哪个组的违规百分比最高

时间:2019-07-03 02:19:27

标签: python pandas

我想从“域”列中找出哪个组的违反率最高。

我尝试使用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%

1 个答案:

答案 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%