【Pandas】pandas Series nunique
Pandas2.2 Series
Computations descriptive stats
方法 | 描述 |
---|---|
Series.abs() | 用于计算 Series 中每个元素的绝对值 |
Series.all() | 用于检查 Series 中的所有元素是否都为 True 或非零值(对于数值型数据) |
Series.any() | 用于检查 Series 中是否至少有一个元素为 True 或非零值(对于数值型数据) |
Series.autocorr() | 用于计算 Series 的自相关系数 |
Series.between() | 用于检查 Series 中的每个元素是否在指定的两个值之间(包括边界值) |
Series.clip() | 用于将 Series 中的元素限制在指定的上下限之间 |
Series.corr() | 用于计算两个 Series 之间的相关系数 |
Series.count() | 用于计算 Series 中非 NA/null 值的数量 |
Series.cov(other[, min_periods, ddof]) | 用于计算两个 Series 之间的协方差 |
Series.cummax([axis, skipna]) | 用于计算 Series 中元素的累积最大值 |
Series.cummin([axis, skipna]) | 用于计算 Series 中元素的累积最小值 |
Series.cumprod([axis, skipna]) | 用于计算 Series 中元素的累积乘积 |
Series.cumsum([axis, skipna]) | 用于计算 Series 中元素的累积和 |
Series.describe([percentiles, include, exclude]) | 用于生成 Series 对象的描述性统计信息的方法 |
Series.diff([periods] ) | 用于计算 Series 中元素与前一个元素之间差值的方法 |
Series.factorize([sort, use_na_sentinel]) | 用于将 Series 中的唯一值编码为从 0 开始的整数索引的方法 |
Series.kurt([axis, skipna, numeric_only]) | 用于计算 Series 中数据的峰度(kurtosis) |
Series.max([axis, skipna, numeric_only]) | 用于计算 Series 中所有元素的最大值 |
Series.mean([axis, skipna, numeric_only]) | 用于计算 Series 中所有元素的算术平均值 |
Series.median([axis, skipna, numeric_only]) | 用于计算 Series 对象中位数的函数 |
Series.min([axis, skipna, numeric_only]) | 用于计算 Series 对象最小值的函数 |
Series.mode([dropna] ) | 用于计算 Series 对象中最常出现的值(众数)的函数 |
Series.nlargest([n, keep]) | 用于获取 Series 对象中最大的 n 个值的函数 |
Series.nsmallest([n, keep]) | 用于获取 Series 对象中最小的 n 个值的函数 |
Series.pct_change([periods, fill_method, …]) | 用于计算 Series 对象中元素与前一个元素之间百分比变化的方法 |
Series.prod([axis, skipna, numeric_only, …]) | 用于计算 Series 对象中所有元素乘积的函数 |
Series.quantile([q, interpolation]) | 用于计算 Series 对象的分位数(quantiles)的方法 |
Series.rank([axis, method, numeric_only, …]) | 用于计算 Series 对象中每个元素的排名的方法 |
Series.sem([axis, skipna, ddof, numeric_only]) | 用于计算 Series 对象的标准误差(Standard Error of the Mean, SEM)的方法 |
Series.skew([axis, skipna, numeric_only]) | 用于计算 Series 对象的偏度(skewness)的方法 |
Series.std([axis, skipna, ddof, numeric_only]) | 用于计算 Series 对象的标准差(Standard Deviation, STD)的方法 |
Series.sum([axis, skipna, numeric_only, …]) | 用于计算 Series 中元素的总和 |
Series.var([axis, skipna, ddof, numeric_only]) | 用于计算 Series 中元素的样本方差 |
Series.kurtosis([axis, skipna, numeric_only]) | 用于计算 Series 中元素的峰度 |
Series.unique() | 用于返回 Series 中的唯一值 |
Series.nunique([dropna] ) | 用于计算 Series 中唯一值的数量 |
pandas.Series.nunique
pandas.Series.nunique()
方法用于计算 Series 中唯一值的数量。该方法可以忽略或包含 NaN 值,具体取决于参数设置。以下是该方法的详细描述:
-
参数:
dropna
:布尔值,默认为 True。如果设置为 True,则在计算唯一值数量时忽略 NaN 值;如果设置为 False,则将 NaN 视为一个唯一值。
-
返回值:
- 返回一个整数,表示 Series 中唯一值的数量。
示例及结果
import pandas as pd
# 创建一个包含重复值和 NaN 的 Series
s = pd.Series([1, 2, 2, 3, 3, 3, 4, 4, 4, 4, None, None])
# 计算唯一值的数量,默认 dropna=True
result_default_dropna = s.nunique()
print("Number of unique values (default dropna=True):", result_default_dropna)
# 计算唯一值的数量,不忽略 NaN 值
result_dropna_false = s.nunique(dropna=False)
print("Number of unique values (dropna=False):", result_dropna_false)
# 包含字符串类型的 Series
s_str = pd.Series(['apple', 'banana', 'apple', 'orange', 'banana', 'grape', None, None])
# 计算字符串 Series 中唯一值的数量,默认 dropna=True
result_str_default_dropna = s_str.nunique()
print("Number of unique string values (default dropna=True):", result_str_default_dropna)
# 计算字符串 Series 中唯一值的数量,不忽略 NaN 值
result_str_dropna_false = s_str.nunique(dropna=False)
print("Number of unique string values (dropna=False):", result_str_dropna_false)
输出结果
Number of unique values (default dropna=True): 4
Number of unique values (dropna=False): 5
Number of unique string values (default dropna=True): 4
Number of unique string values (dropna=False): 5
解释
-
对于数值型 Series:
- 默认情况下 (
dropna=True
),计算的是忽略 NaN 值的唯一值数量。 - 如果
dropna=False
,则将 NaN 视为一个唯一值,并计算所有唯一值的数量。
- 默认情况下 (
-
对于字符串型 Series:
- 同样,默认情况下 (
dropna=True
) 忽略 NaN 值,计算唯一字符串的数量。 - 如果
dropna=False
,则将 NaN 视为一个唯一值,并计算所有唯一值的数量。
- 同样,默认情况下 (
注意事项
nunique()
方法主要用于统计唯一值的数量,而不返回这些值本身。如果需要获取唯一值,请使用pandas.Series.unique()
方法。dropna
参数决定了是否将 NaN 视为一个唯一值,这在处理包含缺失数据的数据集时非常重要。
通过这些示例和解释,您可以更好地理解如何使用 pandas.Series.nunique()
方法来统计 Series 中唯一值的数量,并根据需要选择是否忽略 NaN 值。