Python 如何在groupby数据帧中创建具有条件计数的新列
我有一个DataFrame,它有一些特性,比如:Python 如何在groupby数据帧中创建具有条件计数的新列,python,pandas,dataframe,statistics,Python,Pandas,Dataframe,Statistics,我有一个DataFrame,它有一些特性,比如: GEST GERE HOL ONE1 1234 1 ONE1 6797 0 TWO2 6352 1 TWO2 5530 1 我想按GEST分组,如果HOL==1,则创建一个新列Count,并将其分配给GEST GEST GERE HOL Count ONE1 1234 1 1 ONE1 6797 0 1 TWO2 63
GEST GERE HOL
ONE1 1234 1
ONE1 6797 0
TWO2 6352 1
TWO2 5530 1
我想按GEST
分组,如果HOL==1,则创建一个新列Count
,并将其分配给GEST
GEST GERE HOL Count
ONE1 1234 1 1
ONE1 6797 0 1
TWO2 6352 1 2
TWO2 5530 1 2
输出
GEST GERE HOL Count
ONE1 1234 1 1
ONE1 6797 0 1
TWO2 6352 1 2
TWO2 5530 1 2
GEST GERE HOL Count
0 ONE1 1234 Yes 1
1 ONE1 6797 No 1
2 TWO2 6352 Yes 2
3 TWO2 5530 Yes 2
如果输入是一个分类值,如“是/否”,如下所示
GEST GERE HOL
0 ONE1 1234 Yes
1 ONE1 6797 No
2 TWO2 6352 Yes
3 TWO2 5530 Yes
您可以使用下面的代码获得所需的输出
df['Count']=df.groupby('GEST')['HOL'].transform(lambda x : x.loc[x=='Yes'].count())
输出
GEST GERE HOL Count
ONE1 1234 1 1
ONE1 6797 0 1
TWO2 6352 1 2
TWO2 5530 1 2
GEST GERE HOL Count
0 ONE1 1234 Yes 1
1 ONE1 6797 No 1
2 TWO2 6352 Yes 2
3 TWO2 5530 Yes 2
df['Count']=df.groupby('GEST')['HOL'].transform('sum')
。若要评论或要求作者澄清,请在其帖子下方留下评论。-@YasinPatel这是OP问题的答案。很抱歉,之前它只是一行,没有任何细节。我的坏:(如何恢复它?这样我就可以收回我的评论我不知道。我会说,别担心。以后可能会小心一点;-)