Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在groupby数据帧中创建具有条件计数的新列_Python_Pandas_Dataframe_Statistics - Fatal编程技术网

Python 如何在groupby数据帧中创建具有条件计数的新列

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

我有一个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    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问题的答案。很抱歉,之前它只是一行,没有任何细节。我的坏:(如何恢复它?这样我就可以收回我的评论我不知道。我会说,别担心。以后可能会小心一点;-)