当前位置: 首页 > web >正文

【Pandas】pandas DataFrame kurt

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)

pandas.DataFrame.kurt()

pandas.DataFrame.kurt() 方法用于计算 DataFrame 中每列或每行的峰度(Kurtosis),即衡量数据分布尾部厚度的统计量。峰度描述了数据分布相对于正态分布的“陡峭”或“平坦”程度。


📌 方法签名:
DataFrame.kurt(axis=0, skipna=True, numeric_only=False)

🧾 参数说明:
参数类型描述
axis{0/‘index’, 1/‘columns’}, 默认 0
  • 0:按列计算(返回每列的峰度)
  • 1:按行计算(返回每行的峰度) |
    | skipna | bool, 默认 True | 是否跳过 NaN 值。若为 False,含 NaN 的行/列结果也为 NaN。 |
    | numeric_only | bool, 默认 False | 是否只考虑数值类型列(int、float)。若为 True,忽略布尔、字符串等非数值列。 |

📊 返回值:
  • 返回一个 Series,表示每列(或每行)的峰度值。
  • 峰度的含义如下:
    • 峰度 = 3:与正态分布相同(mesokurtic)
    • 峰度 > 3:高峰度(leptokurtic),尾部更厚,数据更集中
    • 峰度 < 3:低峰度(platykurtic),尾部更薄,分布更平坦

✅ 示例及结果:
示例1:基本用法(按列计算峰度)
import pandas as pd
import numpy as npdf = pd.DataFrame({'A': [1, 2, 3, 4, 5],'B': [10, 100, 10, 100, 10],'C': [2, 2, 2, 2, 2]  # 所有值相同 → 无变化
})print(df.kurt())
输出结果:
A   -1.3
B    4.0
C   NaN
dtype: float64

解释:

  • 列 A:数据均匀分布,峰度 < 3 → 分布较平坦
  • 列 B:存在极端值(10 和 100 交替出现),峰度 = 4 → 尾部比正态分布厚
  • 列 C:所有值相同 → 标准差为 0,无法计算峰度 → NaN

示例2:按行计算峰度(axis=1
print(df.kurt(axis=1))
输出结果:
0   -1.5
1   -1.5
2   -1.5
3   -1.5
4   -1.5
dtype: float64

解释:

  • 每一行的三个数分别为 [1, 10, 2], [2, 100, 2], …,它们的分布形态相似,因此峰度一致。

示例3:包含 NaN 值时设置 skipna=False
df_with_nan = pd.DataFrame({'X': [1, 2, np.nan],'Y': [np.nan, 10, 20]
})print(df_with_nan.kurt(skipna=False))
输出结果:
X   NaN
Y   NaN
dtype: float64

解释:

  • 含有 NaN 的列无法计算峰度 → 结果为 NaN

🎯 适用场景:
场景描述
数据分析检查数据分布是否接近正态分布
异常检测高峰度可能表示存在极端值或异常点
金融分析评估资产收益率分布的风险特性
特征工程在建模前了解特征分布形状,决定是否进行变换(如对数变换)

⚠️ 注意事项:
  • 只适用于数值型列(int、float)
  • 若某列标准差为 0(所有值相等),则峰度为 NaN
  • 默认不跳过 NaN 值(可通过 skipna=False 控制)
  • 不会影响原始 DataFrame,返回新 Series

📋 总结:
特性描述
功能计算 DataFrame 每列或每行的峰度
默认行为按列计算,跳过 NaN,处理所有列
是否修改原数据否,返回新 Series
适用类型数值型列(int、float)
输出范围浮点数,通常在 1~6 之间(极端情况可能更大)

kurt() 是一个非常有用的统计工具,适合用于探索数据分布特性、识别异常值和风险分析等任务。

http://www.xdnf.cn/news/6654.html

相关文章:

  • 如何让 Google 收录 Github Pages 个人博客
  • go封装将所有数字类型转浮点型,可设置保留几位小数
  • AG-UI 协议:重构多模态交互,开启智能应用新纪元
  • C42-作业练习
  • 光谱相机的空间分辨率和时间分辨率
  • MinIO 开源的分布式文件服务器
  • 三格电子上新了——IO-Link系列集线器
  • 【C++】 —— 笔试刷题day_29
  • el-breadcrumb 面包屑第一项后面怎么写没有分隔符
  • 【实测有效】Edge浏览器打开部分pdf文件显示空白
  • 线程池(ThreadPoolExecutor)实现原理和源码细节是Java高并发面试和实战开发的重点
  • 文件系统交互实现
  • css:无限滚动波浪线
  • Linux du 命令终极指南:从基础到精通
  • 详解具身智能开源数据集:RH20T
  • Maven使用详解:Maven的概述(二)
  • 单片机-STM32部分:18、WiFi模组
  • 真题卷001——算法备赛
  • 小结:JavaScript 模块化工具链
  • 傅里叶变换实战:图像去噪与边缘提取
  • 锚点跳转跟踪#
  • Web-CSS入门
  • ci/cd全流程实操
  • 2025年全国青少年信息素养大赛复赛集训(2):寻找250(题目及解析)
  • Perl测试起步:从零到精通的完整指南
  • 【Python】【OCR识别】 提取图片文字并根据内容智能分类存储
  • C#运算符
  • 大语言模型与多模态模型比较
  • 【笔记】cri-docker.service和containerd
  • 特斯拉虚拟电厂:能源互联网时代的分布式革命