【Pandas】pandas DataFrame mode

Pandas2.2 DataFrame

Computations descriptive stats

方法 描述
DataFrame.abs() 用于返回 DataFrame 中每个元素的绝对值
DataFrame.all([axis, bool_only, skipna]) 用于判断 DataFrame 中是否所有元素在指定轴上都为 True
DataFrame.any(*[, axis, bool_only, skipna]) 用于判断 DataFrame 中是否至少有一个元素在指定轴上为 True
DataFrame.clip([lower, upper, axis, inplace]) 用于截断(限制)DataFrame 中的数值
DataFrame.corr([method, min_periods, ...]) 用于计算 DataFrame 中各列之间的相关系数矩阵(Correlation Matrix)
DataFrame.corrwith(other[, axis, drop, ...]) 用于计算当前 DataFrame 的每一列(或行)与另一个 Series 或 DataFrame 中对应列的相关系数
DataFrame.count([axis, numeric_only]) 用于统计 DataFrame 中每列或每行的非空(非 NaN)元素数量
DataFrame.cov([min_periods, ddof, numeric_only]) 用于计算 DataFrame 中每对列之间的协方差
DataFrame.cummax([axis, skipna]) 用于计算 DataFrame 中每列或每行的累计最大值(cumulative maximum)
DataFrame.cummin([axis, skipna]) 用于计算 DataFrame 中每列或每行的累计最小值(cumulative minimum)
DataFrame.cumprod([axis, skipna]) 用于计算 DataFrame 中每列或每行的累计乘积(cumulative product)
DataFrame.cumsum([axis, skipna]) 用于计算 DataFrame 中每列或每行的累计和(cumulative sum)
DataFrame.describe([percentiles, include, ...]) 用于快速生成数据集的统计摘要(summary statistics)
DataFrame.diff([periods, axis]) 用于计算 DataFrame 中相邻行或列之间的差值(差分)
DataFrame.eval(expr, *[, inplace]) 用于在 DataFrame 上下文中高效地执行字符串形式的表达式运算
DataFrame.kurt([axis, skipna, numeric_only]) 用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.kurtosis([axis, skipna, numeric_only]) 用于计算 DataFrame 中每列或每行的峰度(Kurtosis)
DataFrame.max([axis, skipna, numeric_only]) 用于计算 DataFrame 中每列或每行的最大值(maximum)
DataFrame.mean([axis, skipna, numeric_only]) 用于计算 DataFrame 中每列或每行的平均值(mean)
DataFrame.median([axis, skipna, numeric_only]) 用于计算 DataFrame 中每列或每行的中位数(median)
DataFrame.min([axis, skipna, numeric_only]) 用于计算 DataFrame 中每列或每行的最小值(minimum)
DataFrame.mode([axis, numeric_only, dropna]) 用于查找 众数(出现频率最高的值) 的方法

pandas.DataFrame.mode()

pandas.DataFrame.mode() 是 Pandas 中用于查找 众数(出现频率最高的值) 的方法。它返回一个 DataFrame,其中包含每列或每行的众数。

语法
python 复制代码
DataFrame.mode(axis=0, numeric_only=False, dropna=True)
参数说明
参数 类型 默认值 描述
axis int 或 str 0 定义计算方向: - 0'index':按列计算众数 - 1'columns':按行计算众数
numeric_only bool False 是否仅考虑数值类型(如 int、float),忽略字符串、对象等
dropna bool True 是否在计算前删除 NaN 值
返回值
  • 返回一个新的 DataFrame,每一列/行中包含该列/行的所有众数。
  • 如果某列有多个众数,则会以多行形式展示。

示例
示例数据:
python 复制代码
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 2, 3, 3],
    'B': [4, 5, 5, 5, 6],
    'C': ['x', 'y', 'y', 'z', 'z']
})

输出原始数据:

复制代码
   A  B  C
0  1  4  x
1  2  5  y
2  2  5  y
3  3  5  z
4  3  6  z

示例 1:默认参数(按列计算所有类型的众数)
python 复制代码
df.mode()

结果:

复制代码
   A  B  C
0  2  5  y
1  3  5  z

解释:

  • 列 A 的众数是 23(各出现两次)
  • 列 B 的众数是 5(出现三次)
  • 列 C 的众数是 yz(各出现两次)

示例 2:只考虑数值类型 (numeric_only=True)
python 复制代码
df.mode(numeric_only=True)

结果:

复制代码
   A  B
0  2  5
1  3  5

解释:

  • 忽略非数值列 C,只显示 AB 的众数

示例 3:按行计算众数 (axis=1)
python 复制代码
df.mode(axis=1)

结果:

复制代码
   0
0  1
1  2
2  2
3  3
4  3

解释:

  • 每一行的众数(这里每行只有一个众数)

注意事项
  • 若某列/行没有重复值,将返回空值或原始数据中第一个值。
  • 支持处理 NaN 值(通过 dropna 控制是否排除)。
  • 当存在多个众数时,会全部列出(作为多行)。

相关推荐
木头左2 小时前
逻辑回归的Python实现与优化
python·算法·逻辑回归
quant_19863 小时前
R语言如何接入实时行情接口
开发语言·经验分享·笔记·python·websocket·金融·r语言
失败又激情的man8 小时前
python之requests库解析
开发语言·爬虫·python
打酱油的;8 小时前
爬虫-request处理get
爬虫·python·django
kngines8 小时前
【力扣(LeetCode)】数据挖掘面试题0002:当面对实时数据流时您如何设计和实现机器学习模型?
机器学习·数据挖掘·面试题·实时数据
HyperAI超神经9 小时前
OmniGen2 多模态推理×自我纠正双引擎,引领图像生成新范式;95 万分类标签!TreeOfLife-200M 解锁物种认知新维度
人工智能·数据挖掘·数据集·图像生成·医疗健康·在线教程·数学代码
用什么都重名10 小时前
MinerU:高效智能PDF文档解析工具完全指南
人工智能·python·pdf·mineru·makedown
倔强青铜三10 小时前
苦练Python第4天:Python变量与数据类型入门
前端·后端·python
这我可不懂10 小时前
Python 项目快速部署到 Linux 服务器基础教程
linux·服务器·python
倔强青铜三11 小时前
苦练Python第3天:Hello, World! + input()
前端·后端·python