gpt4 book ai didi

python - Pandas 如何在一个群体中获得独特的值(value)?

转载 作者:行者123 更新时间:2023-11-28 20:57:32 24 4
gpt4 key购买 nike

这是我的数据框:

df = pd.DataFrame([['a',1],['a',1],['a',1],['a',2],['b',2],['b',2],['c',3]], columns=['letters','numbers'])

letters numbers
0 a 1
1 a 1
2 a 1
3 a 2
4 b 2
5 b 2
6 c 3

我需要按组(“字母”)“数字”中唯一值的数量。所以输出将是

a 2
b 1
c 1

这是我的(非常丑陋的)解决方案。它可以工作,但是谁能帮我找到一种更符合 Python 风格的方法来使用 pandas 来做到这一点?

result = []
groups = list(df['letters'].unique())
for g in groups:

filtered_df = df[df['letters'] == g]

uniques = len(filtered_df['numbers'].unique())
result.append((g, uniques))

[('a', 2), ('b', 1), ('c', 1)]

最佳答案

使用nunique

df.groupby('letters').numbers.nunique()
Out[864]:
letters
a 2
b 1
c 1
Name: numbers, dtype: int64

关于python - Pandas 如何在一个群体中获得独特的值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52881407/

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