【Pandas】pandas Series mode

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 对象中最常出现的值(众数)的函数

pandas.Series.mode

pandas.Series.mode 是 pandas 库中用于计算 Series 对象中最常出现的值(众数)的函数。下面将详细描述该函数及其参数,并给出示例及结果。

函数描述
  • 功能:返回 Series 中出现频率最高的一个或多个值(众数)。如果有多个值具有相同的最高频率,则返回所有这些值。

  • 参数

    • dropna:布尔值,默认为 True,表示是否忽略缺失值(NaN)。如果设置为 False,则 NaN 也会被视为可能的众数之一。
  • 返回值:返回一个包含众数的 Series。如果没有非缺失值,则返回一个空的 Series。

示例代码及结果
#示例 1:基本用法
import pandas as pd

# 创建一个包含数值的 Series
s = pd.Series([1, 2, 2, 3, 4, 4, 4, 5])

# 计算众数
mode_values = s.mode()
print(f"众数是: {mode_values}")
输出结果:
众数是: 0    4
dtype: int64
示例 2:包含多个众数的情况
# 创建一个包含多个众数的 Series
s_multiple_modes = pd.Series([1, 2, 2, 3, 3, 4, 4])

# 计算众数
mode_values_multiple = s_multiple_modes.mode()
print(f"众数是: {mode_values_multiple}")
输出结果:
众数是: 0    2
1    3
2    4
dtype: int64
示例 3:包含 NaN 值的情况
# 创建一个包含 NaN 值的 Series
s_with_nan = pd.Series([1, 2, 2, None, 3, 3, 4, 4])

# 计算众数,默认忽略 NaN
mode_values_skipna = s_with_nan.mode(dropna=True)
print(f"忽略 NaN 的众数是: {mode_values_skipna}")

# 不忽略 NaN 计算众数
mode_values_no_skipna = s_with_nan.mode(dropna=False)
print(f"不忽略 NaN 的众数是: {mode_values_no_skipna}")
输出结果:
忽略 NaN 的众数是: 0    2.0
1    3.0
2    4.0
dtype: float64
不忽略 NaN 的众数是: 0    2.0
1    3.0
2    4.0
dtype: float64
示例 4:处理非数值类型的数据

mode 方法不仅适用于数值数据,也适用于字符串和其他类型的对象。

# 创建一个包含字符串的 Series
s_strings = pd.Series(['apple', 'banana', 'apple', 'orange', 'banana', 'banana'])

# 计算众数
mode_values_strings = s_strings.mode()
print(f"众数是: {mode_values_strings}")
输出结果:
众数是: 0    banana
dtype: object
总结
  • mode 方法返回 Series 中出现频率最高的一个或多个值。
  • 如果有多个值具有相同的最高频率,则返回所有这些值。
  • dropna=True 时,mode 方法会忽略 NaN 值;dropna=False 时,NaN 也会被视为可能的众数之一。
  • mode 方法不仅适用于数值数据,还适用于字符串和其他类型的对象。

你可能感兴趣的:(Pandas,Series,pandas,前端,数据库)