python - 如何在 Pandas 中使用 groupby].transform ('count' )时计算唯一值

标签 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  2018_Q1     CC      70
7    Ray  2018_Q1     CC      80
8   Clay  2018_Q2     CC      90
9   Clay  2018_Q2     CC      99

我想添加一个 Count计算 Symbols唯一数量的列每NameDate 。当我这样做时:

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

我该如何实现这一目标?

最佳答案

transformnunique结合使用:

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

现在:

print(df)

是:

   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

关于python - 如何在 Pandas 中使用 groupby].transform ('count' )时计算唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59959998/

相关文章:

python - 神经网络 pytorch

javascript - 解析从 python(tornado) 到 javascript 的路径变量

python - Numpy 和 Pandas(通过 conda 安装)比通过 pip 运行得更快?

python - 加入两个 Pandas 数据框

python - 将字符串中的转换值附加到数据框中的新列

python - 在 model_dir 中找不到经过训练的模型

python - 如何在python中运行在该线程外的线程中调用的函数

python - BeautifulSoup错误消息?

Python/Pandas 数据框 - 返回列名称

python - pandas:如何根据所有列的总和选择行?