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