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 中唯一值的数量 |
Series.is_unique | 用于检查 Series 中的元素是否唯一 |
Series.is_monotonic_increasing | 用于检查 Series 中的元素是否按单调递增顺序排列 |
Series.is_monotonic_decreasing | 用于检查 Series 中的元素是否按单调递减顺序排列 |
Series.value_counts([normalize, sort, …]) | 用于计算 Series 中每个唯一值的出现次数 |
pandas.Series.value_counts
pandas.Series.value_counts()
方法用于计算 Series 中每个唯一值的出现次数。该方法可以返回一个包含唯一值及其频率的 Series,并且可以通过参数进行多种定制化操作。以下是该方法的详细描述:
-
参数:
normalize
:布尔值,默认为 False。如果设置为 True,则返回的是频率(即比例),而不是计数。sort
:布尔值,默认为 True。如果设置为 True,则按降序对结果进行排序;如果设置为 False,则保持原始顺序。ascending
:布尔值,默认为 False。仅当sort=True
时有效,如果设置为 True,则按升序排序。dropna
:布尔值,默认为 True。如果设置为 True,则忽略 NaN 值;如果设置为 False,则将 NaN 视为一个唯一值并计算其频率。bins
:整数或区间对象,默认为 None。如果提供,则将数值型数据分组到指定数量的等宽区间中。datetime_is_numeric
:布尔值,默认为 False。如果设置为 True,则将 datetime 类型的数据视为数值处理。
-
返回值:
- 返回一个 Series,其中索引是原始 Series 中的唯一值,值是这些唯一值的出现次数或频率(取决于
normalize
参数)。
- 返回一个 Series,其中索引是原始 Series 中的唯一值,值是这些唯一值的出现次数或频率(取决于
示例及结果
import pandas as pd
# 创建一个包含重复值和 NaN 的 Series
s = pd.Series([1, 2, 2, 3, 3, 3, 4, 4, 4, 4, None, None])
# 计算每个值的出现次数,默认参数
result_default = s.value_counts()
print("Value counts (default parameters):")
print(result_default)
# 计算每个值的频率(比例)
result_normalize = s.value_counts(normalize=True)
print("\nValue counts with normalize=True:")
print(result_normalize)
# 不对结果进行排序
result_no_sort = s.value_counts(sort=False)
print("\nValue counts with sort=False:")
print(result_no_sort)
# 包含 NaN 值的计数
result_dropna_false = s.value_counts(dropna=False)
print("\nValue counts with dropna=False:")
print(result_dropna_false)
# 将数值分组到 3 个等宽区间
result_bins = s[s.notna()].value_counts(bins=3)
print("\nValue counts with bins=3:")
print(result_bins)
输出结果
Value counts (default parameters):
4.0 4
3.0 3
2.0 2
1.0 1
Name: count, dtype: int64
Value counts with normalize=True:
4.0 0.4
3.0 0.3
2.0 0.2
1.0 0.1
Name: proportion, dtype: float64
Value counts with sort=False:
1.0 1
2.0 2
3.0 3
4.0 4
Name: count, dtype: int64
Value counts with dropna=False:
4.0 4
3.0 3
2.0 2
NaN 2
1.0 1
Name: count, dtype: int64
Value counts with bins=3:
(3.0, 4.0] 4
(0.996, 2.0] 3
(2.0, 3.0] 3
Name: count, dtype: int64
解释
-
默认参数:
- 返回每个唯一值的出现次数,按降序排列。
-
normalize=True:
- 返回每个唯一值的频率(比例),总和为 1。
-
sort=False:
- 返回每个唯一值的出现次数,但不进行排序,保持原始顺序。
-
dropna=False:
- 将 NaN 视为一个唯一值并计算其频率。
-
bins=3:
- 将数值型数据分组到 3 个等宽区间,并返回每个区间的频率或计数。
注意事项
value_counts()
方法主要用于统计唯一值的频率或计数,适用于各种数据类型(数值型、字符串型等)。- 使用
bins
参数时,确保 Series 中的数据是数值型,否则会引发错误。 - 如果需要更复杂的分组或统计,可以结合其他 Pandas 函数(如
groupby
和agg
)使用。
通过这些示例和解释,您可以更好地理解如何使用 pandas.Series.value_counts()
方法来统计 Series 中唯一值的频率或计数,并根据需要调整参数以获得所需的结果。