首页 > 解决方案 > pandas groupby 列然后根据第三列创建另外两列

问题描述

我正在尝试按列对数据框进行分组,并根据此分组获取总的“已批准”或“未批准”值,但没有成功。

例子:

PlaceTest | Approved    
       21 |        1    
       21 |        0    
       22 |        1    
       22 |        0

我想要的输出:

PlaceTest | Approved | NotApproved    
       21 |        1 |           1    
       22 |        1 |           1

谢谢!

标签: pythonpandasdataframe

解决方案


给定

>>> df
   PlaceTest  Approved
0         21         1
1         21         0
2         22         1
3         22         0

你可以发出

>>> df.assign(NotApproved=1 - df['Approved']).groupby('PlaceTest').sum().reset_index()
   PlaceTest  Approved  NotApproved
0         21         1            1
1         22         1            1

推荐阅读