gpt4 book ai didi

python - 给定另一列的值计算一列的唯一值

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:01 24 4
gpt4 key购买 nike

所以,我对一些我认为相对容易的事情有疑问。

我有一个包含三列的数据框:

A  B  C
x1 a 2
x1 a 2
x1 b 3
x1 c 4
x1 c 4
x2 d 2
x2 d 2
x3 e 5
x3 e 5

现在,如果我现在想知道每个 A 组(x1、x2、x3)在 B 中有多少个在 C 中大于 2 的唯一值,并将其分配给一个新列 D,这将返回我以下

A  B  C  D
x1 a 2 2
x1 a 2 2
x1 b 3 2
x1 c 4 2
x1 c 4 2
x2 d 2 0
x2 d 2 0
x3 e 5 1
x3 e 5 1

我应该如何在不使用 for 循环的情况下在 Python Pandas 中获取它?这可能吗?

最佳答案

您可以先根据 C 列进行过滤,然后使用 groupby.nunique。结果系列可以用作映射:

df['D'] = df['A'].map(df[df['C']>2].groupby('A')['B'].nunique()).fillna(0)

df
Out:
A B C D
0 x1 a 2 2.0
1 x1 a 2 2.0
2 x1 b 3 2.0
3 x1 c 4 2.0
4 x1 c 4 2.0
5 x2 d 2 0.0
6 x2 d 2 0.0
7 x3 e 5 1.0
8 x3 e 5 1.0

关于python - 给定另一列的值计算一列的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com