gpt4 book ai didi

pandas - 使用 pandas nunique() 和 unique() 的不同结果

转载 作者:行者123 更新时间:2023-12-01 09:10:01 29 4
gpt4 key购买 nike

我有一个很大的 DF10 millions 行,我需要找到每列的唯一编号。

我写了下面的函数:
(需要返回一个系列)

def count_unique_values(df):
return pd.Series(df.nunique())

我得到这个输出:

Area          210
Item 436
Element 4
Year 53
Unit 2
Value 313640
dtype: int64

预期结果应为值 313641。

当我做

df['Value'].unique()

我确实得到了那个答案。不明白为什么我在那里得到的 nunique() 更少。

最佳答案

因为 DataFrame.nunique 省略了缺失值,因为默认参数 dropna=True Series.unique 函数没有。

示例 :

df = pd.DataFrame({
'A':list('abcdef'),
'D':[np.nan,3,5,5,3,5],

})

print (df)
A D
0 a NaN
1 b 3.0
2 c 5.0
3 d 5.0
4 e 3.0
5 f 5.0

def count_unique_values(df):
return df.nunique()

print (count_unique_values(df))
A 6
D 2
dtype: int64

print (df['D'].unique())
[nan 3. 5.]
print (df['D'].nunique())
2

print (df['D'].unique())
[nan 3. 5.]

解决方案是添加参数 dropna=False :
print (df['D'].nunique(dropna=False))
3

print (df['D'].unique())
3

所以在你的函数中:
def count_unique_values(df):
return df.nunique(dropna=False)
print (count_unique_values(df))
A 6
D 3
dtype: int64

关于pandas - 使用 pandas nunique() 和 unique() 的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56310788/

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