看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
根据官方文档,pandas
的 kurt()
方法用于计算 DataFrame
或 Series
的峰度(Kurtosis)。峰度衡量数据分布的尾部厚度,即数据分布的尖锐程度。相比于正态分布,正峰度表示数据分布更尖锐,而负峰度表示数据分布更平坦。
返回请求轴上的无偏峰度。使用Fisher的峰度定义获得的峰度(正常峰度==0.0)。按N-1标准化。
DataFrame.kurt(axis=0, skipna=True, numeric_only=False, **kwargs)
Series.kurt(axis=0, skipna=True, numeric_only=False, **kwargs)
pandas 还有一个 DataFrame.kurtosis()
的峰度全称方法名,建议使用此 kurt()
简写,方法记忆使用。
axis
: 可选。默认为 0
,表示按列计算。如果设置为 1
,则按行计算。skipna
: 可选。布尔值,默认为 True
。如果为 True
,则跳过 NA/null 值。如果为 False
,任何 NA 值会导致计算结果也为 NA。numeric_only
: 可选。布尔值,默认为 None
。如果为 True
,则仅计算数值型列;如果为 False
,则计算所有列。Series 未实现。**kwargs
: 要传递给函数的其他关键字参数。返回一个 Series
或 DataFrame
,其中包含每列或每行的峰度值。
假设有一个包含多个变量的数据集,我们希望计算这些变量的峰度。
s = pd.Series([1, 2, 2, 3], index=['cat', 'dog', 'dog', 'mouse'])
s
'''
cat 1
dog 2
dog 2
mouse 3
dtype: int64
'''
s.kurt()
# 1.5
DataFrame:
df = pd.DataFrame({'a': [1, 2, 2, 3], 'b': [3, 4, 4, 4]},
index=['cat', 'dog', 'dog', 'mouse'])
df
'''
a b
cat 1 3
dog 2 4
dog 2 4
mouse 3 4
'''
df.kurt()
'''
a 1.5
b 4.0
dtype: float64
'''
使用 axis=None
df.kurt(axis=None).round(6)
# -0.988693
用 axis=1
df = pd.DataFrame({'a': [1, 2], 'b': [3, 4], 'c': [3, 4], 'd': [1, 2]},
index=['cat', 'dog'])
df.kurt(axis=1)
'''
cat -6.0
dog -6.0
dtype: float64
'''
这些结果帮助我们理解每个变量在数据集中的分布形状和尖锐程度。
更新时间:2024-08-15 09:25:23 标签:pandas python 峰度 kurt