Python 如何在使用groupby].transform(';Count';)时计算Unique

Python 如何在使用groupby].transform(';Count';)时计算Unique,python,pandas,Python,Pandas,我有一个数据帧df: Name Date Symbol Value 0 Ajay 2018_Q1 AA 10 1 Ajay 2018_Q1 AA 20 2 Faye 2018_Q1 AA 30 3 Faye 2018_Q1 BB 40 4 Ray 2018_Q1 BB 50 5 Ray 2018_Q1 BB 60 6 Ray

我有一个数据帧
df

    Name     Date Symbol   Value
0   Ajay  2018_Q1     AA      10
1   Ajay  2018_Q1     AA      20
2   Faye  2018_Q1     AA      30
3   Faye  2018_Q1     BB      40
4    Ray  2018_Q1     BB      50
5    Ray  2018_Q1     BB      60
6    Ray  2018_Q1     CC      70
7    Ray  2018_Q1     CC      80
8   Clay  2018_Q2     CC      90
9   Clay  2018_Q2     CC      99
我想添加一个
Count
列,它计算每个
Name
Date
符号的唯一数量。当我这样做时:

df.groupby(['Date', 'Symbol'])['Name'].nunique()
df['Count'] = df.groupby(['Date', 'Symbol'])['Name'].transform('count')
我的输出如下所示:

      Name     Date Symbol  Value Count
0     Ajay  2018 Q1     AA     10     3
1     Ajay  2018 Q1     AA     20     3
2     Faye  2018 Q1     AA     30     3
3     Faye  2018 Q1    BBB     40     3
4      Ray  2018 Q1    BBB     50     3
5      Ray  2018 Q1    BBB     60     3
6      Ray  2018 Q1    CCC     70     2
7      Ray  2018 Q1    CCC     80     2
8     Clay  2018 Q2    CCC     90     2
9     Clay  2018 Q2    CCC     99     2
但由于我需要唯一的计数,因此所需的输出是:

      Name     Date Symbol  Value Count
0     Ajay  2018 Q1     AA     10     2
1     Ajay  2018 Q1     AA     20     2
2     Faye  2018 Q1     AA     30     2
3     Faye  2018 Q1    BBB     40     2
4      Ray  2018 Q1    BBB     50     2
5      Ray  2018 Q1    BBB     60     2
6      Ray  2018 Q1    CCC     70     1 
7      Ray  2018 Q1    CCC     80     1
8     Clay  2018 Q2    CCC     90     1
9     Clay  2018 Q2    CCC     99     1

我如何做到这一点

变换
nunique
一起使用:

df['Count'] = df.groupby(['Date', 'Symbol'])['Name'].transform('nunique')
现在:

print(df)
是:


您是否尝试过
df['Count']=df.groupby(['Date','Symbol'])['Name'].transform('nunique')
?这应该行得通。请让我知道这是否有效

如果我有其他列的值不同,这仍然有效吗?例如,假设我有一个名为
Value
的列,对于行
0
它是
10
,行
1
20
,行
3
30
?奇怪。。。当我在我的实际数据集上这样做时,它仍然没有得到唯一性。但是,当使用问题中的样本数据集时,它会这样做。我得再做些测试
   Name     Date Symbol  Count
0  Ajay  2018_Q1     AA      2
1  Ajay  2018_Q1     AA      2
2  Faye  2018_Q1     AA      2
3  Faye  2018_Q1     BB      2
4   Ray  2018_Q1     BB      2
5   Ray  2018_Q1     BB      2
6   Ray  2018_Q1     CC      1
7   Ray  2018_Q1     CC      1
8  Clay  2018_Q2     CC      1
9  Clay  2018_Q2     CC      1