看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas 的 skew()
方法用于计算DataFrame或Series中数值数据的偏度(Skewness)。偏度是一种描述数据分布不对称性的统计量,如果偏度为0,表示数据呈对称分布;如果偏度为正,表示数据右偏,即右尾较长;如果偏度为负,表示数据左偏,即左尾较长。
返回请求轴上的无偏偏斜。按N-1标准化。
DataFrame.skew(axis=0,
skipna=True,
numeric_only=None,
**kwargs)
axis
:int
,默认值是 0
指定计算的轴方向:
0
或 'index'
:按列计算偏度。1
或 'columns'
:按行计算偏度。skipna
:bool
,默认值是 True
是否忽略缺失值(NaN)。
True
,则忽略缺失值;False
,只要存在缺失值,结果中对应的偏度将为 NaN。numeric_only
:bool
,默认值是 None
是否只计算数值类型的列。
True
,则只考虑数值类型的列;False
,所有数据类型都参与计算(只要能够计算)。****kwargs
**:其他关键词参数,用于扩展功能或在方法调用时传递给其他内部函数。
返回一个包含偏度的 Series。结果的索引与输入数据一致。
s = pd.Series([1, 2, 3])
s.skew()
# 0.0
DataFrame:
df = pd.DataFrame({'a': [1, 2, 3], 'b': [2, 3, 4], 'c': [1, 3, 5]},
index=['tiger', 'zebra', 'cow'])
df
'''
a b c
tiger 1 2 1
zebra 2 3 3
cow 3 4 5
'''
df.skew()
'''
a 0.0
b 0.0
c 0.0
dtype: float64
'''
用 axis=1
df.skew(axis=1)
'''
tiger 1.732051
zebra -1.732051
cow 0.000000
dtype: float64
'''
在这种情况下,应将numeric_only设置为True以避免出错。
df = pd.DataFrame({'a': [1, 2, 3], 'b': ['T', 'Z', 'X']},
index=['tiger', 'zebra', 'cow'])
df.skew(numeric_only=True)
'''
a 0.0
dtype: float64
'''
假设我们有一个包含学生考试成绩的 DataFrame,我们可以使用 skew()
方法来计算每门课程成绩的偏度。
import pandas as pd
# 创建示例数据
data = {
'数学': [75, 85, 95, 65, 70],
'英语': [88, 92, 85, 70, 80],
'物理': [92, 90, 87, 85, 80]
}
df = pd.DataFrame(data)
# 计算偏度
skew_df = df.skew()
print(skew_df)
'''
数学 0.601364
英语 -0.928896
物理 -0.605427
dtype: float64
'''
在这个例子中,数学
的偏度为正值,表示数据右偏,意味着高分数较多;英语
和 物理
的偏度为负值,表示数据左偏,意味着低分数较多。偏度的值接近于0,表明数据分布相对对称。
更新时间:2024-08-08 21:39:06 标签:pandas python 偏度 skew