【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 np

df = 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() 是一个非常有用的统计工具,适合用于探索数据分布特性、识别异常值和风险分析等任务。

内容概要:《2025年机器身份安全现状报告》揭示了机器身份安全在全球企业中的重要性和面临的挑战。随着云计算、AI和微服务的发展,机器身份数量已远超人类身份,成为现代网络安全的核心。然而,管理这些身份变得越来越复杂,许多组织缺乏统一的管理策略。77%的安全领导者认为每个未发现的机器身份都是潜在的风险点,50%的组织在过去一年中经历了与机器身份相关的安全事件,导致应用发布延迟、客户体验受损和数据泄露等问题。AI的兴起进一步加剧了这一问题,81%的安全领导者认为机器身份将是保护AI未来的关键。此外,证书相关故障频发,自动化管理仍不足,量子计算的威胁也逐渐显现。面对这些挑战,组织需要建立全面的机器身份安全计划,重点加强自动化、可见性和加密灵活性。 适合人群:从事信息安全、IT管理和技术架构规划的专业人士,尤其是关注机器身份管理和云原生环境安全的从业者。 使用场景及目标:①理解机器身份在现代企业安全架构中的关键作用;②识别当前机器身份管理中存在的主要风险和挑战;③探讨如何通过自动化、可见性和加密灵活性来提升机器身份安全管理的有效性;④为制定或优化企业机器身份安全策略提供参考。 其他说明:此报告基于对全球1,200名安全领导者的调查,强调了机器身份安全的重要性及其在未来几年内可能面临的复杂变化。报告呼吁各组织应重视并积极应对这些挑战,以确保业务连续性和数据安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuweidong0802

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值