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

【Pandas】pandas Series kurt

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)

pandas.Series.kurt

pandas.Series.kurt() 是 pandas 库中 Series 对象的一个方法,用于计算 Series 中数据的峰度(kurtosis)。峰度是描述数据分布形态的一种统计量,它衡量的是数据集尾部的“厚薄”程度,即与正态分布相比,数据是否更集中在中心或更分散在尾部。峰度可以分为:

  • 正峰度:表示数据分布比正态分布有更重的尾部,意味着存在更多的极端值。
  • 负峰度:表示数据分布比正态分布有更轻的尾部,意味着极端值较少。

需要注意的是,Series.kurt() 默认使用 Fisher’s 定义计算峰度,这意味着正态分布的峰度为 0。如果需要得到 Pearson 的定义(即不减去3),可以在计算后手动加3。

参数
  • axis: {0 or ‘index’}, 默认为 0。对于 Series 来说,这个参数通常不需要更改。
  • skipna: 布尔值,默认为 True。如果设置为 True,则忽略缺失值(NaN);如果设置为 False,则在遇到 NaN 时返回 NaN。
  • numeric_only: 布尔值,默认为 None。如果设置为 True,则仅包括数值型数据(float、int、boolean)。此参数在 Series 上没有实际效果,因为 Series 只能包含单一数据类型。
  • **kwargs: 其他关键字参数,传递给底层的统计函数。
返回值
  • float: 数据集的峰度值
示例及结果
示例1:基本用法
import pandas as pd

# 创建一个简单的数值型 Series
data = pd.Series([1, 2, 2, 3, 4, 4, 4, 5, 5, 6])

# 使用 kurt 方法计算峰度
kurt_result = data.kurt()

print("基本用法结果:")
print(kurt_result)

输出结果:

基本用法结果:
-0.8204833272594749

在这个例子中,kurt 方法计算了 Series 数据的峰度。由于数据相对集中在中间值附近,且没有明显的极端值,因此返回的结果是一个负数,表明该分布具有较轻的尾部。

示例2:包含缺失值的 Series
import pandas as pd

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

# 使用 kurt 方法计算峰度,并跳过缺失值
kurt_skipna_true = data_with_na.kurt(skipna=True)

# 使用 kurt 方法计算峰度,不跳过缺失值
kurt_skipna_false = data_with_na.kurt(skipna=False)

print("跳过缺失值的结果:")
print(kurt_skipna_true)

print("\n不跳过缺失值的结果:")
print(kurt_skipna_false)

输出结果:

跳过缺失值的结果:
-1.0892857142857126

不跳过缺失值的结果:
nan

在这个例子中,kurt 方法分别在跳过和不跳过缺失值的情况下进行了计算。当 skipna=True 时,忽略 NaN 值,结果为 -1.2;当 skipna=False 时,包含 NaN 值,结果为 NaN

示例3:使用自定义数据生成更重尾部的分布
import pandas as pd
import numpy as np

# 创建一个包含更多极端值的数值型 Series
heavy_tail_data = pd.Series([1, 2, 2, 3, 4, 4, 4, 5, 5, 100])

# 使用 kurt 方法计算峰度
kurt_heavy_tail = heavy_tail_data.kurt()

print("包含极端值的数据结果:")
print(kurt_heavy_tail)

输出结果:

包含极端值的数据结果:
9.947911687532585

在这个例子中,kurt 方法计算了一个包含极端值的 Series 数据的峰度。由于存在显著的极端值(如100),导致分布呈现出更重的尾部,因此返回的结果是一个较大的正值,表明该分布具有更重的尾部。

示例4:使用随机生成的数据
import pandas as pd
import numpy as np

# 设置随机种子以确保结果可复现
np.random.seed(0)

# 创建一个随机生成的数值型 Series
random_data = pd.Series(np.random.randn(100))

# 使用 kurt 方法计算峰度
kurt_random = random_data.kurt()

print("随机生成的数据结果:")
print(kurt_random)

输出结果:

随机生成的数据结果:
-0.33548992339308814

在这个例子中,kurt 方法计算了一组随机生成的 Series 数据的峰度。由于这些数据是从标准正态分布中随机抽取的,因此其峰度接近于 0,这符合正态分布的特征。

总结

pandas.Series.kurt 方法在数据分析和处理中非常有用,特别是在需要评估数据分布形态时。它可以帮助我们了解数据集中是否存在异常值或极端值,以及数据分布相对于正态分布的尾部特性。通过上述示例可以看到,kurt() 方法能够有效地计算不同类型的 Series 数据的峰度,帮助我们更好地理解数据的分布特点。

请注意,kurt 方法的主要特点是返回一个浮点数,表示数据集的峰度,并且可以通过参数控制是否跳过缺失值。此外,默认情况下,它使用 Fisher’s 定义计算峰度,即正态分布的峰度为 0。


http://www.kler.cn/a/528953.html

相关文章:

  • VLN视觉语言导航基础
  • (9)下:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同。小例子的实验
  • happytime
  • (即插即用模块-特征处理部分) 二十、(TPAMI 2022) Permute-MLP 置换MLP模块
  • LeetCode题练习与总结:种花问题--605
  • C基础寒假练习(6)
  • 【数据采集】案例01:基于Scrapy采集豆瓣电影Top250的详细数据
  • 解决istoreos无法拉取青龙镜像
  • Java小白入门教程:HashSet
  • ZZNUOJ(C/C++)基础练习1031——1040(详解版)
  • 【JAVA】循环语句
  • 工作中使用到的单词(软件开发)_第一、二、三版汇总
  • TensorFlow 示例摄氏度到华氏度的转换(一)
  • 作者新游戏1.0
  • Linux中 端口被占用如何解决
  • rust跨平台调用动态库
  • 设计模式Python版 组合模式
  • DRM系列六:Drm之KMS
  • 线程的状态转换和调度
  • 深入理解Spring框架:从基础到实践