看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas 的 sem()
方法用于计算 DataFrame 或 Series 中数值数据的标准误差(Standard Error of the Mean, SEM)。标准误差用于描述样本均值相对于总体均值的偏差,通常用于推断统计学中的置信区间或进行假设检验。
返回请求轴上平均值的无偏标准误差。默认情况下按N-1标准化,这可以使用ddof参数进行更改。
DataFrame.sem(axis=0,
skipna=True,
ddof=1,
numeric_only=False,
**kwargs)
axis
:int
,默认值是 0
指定计算的轴方向:
0
或 'index'
:按列计算标准误差。1
或 'columns'
:按行计算标准误差。skipna
:bool
,默认值是 True
是否忽略缺失值(NaN)。
True
,则忽略缺失值;False
,则只要存在缺失值,结果中对应的标准误差将为 NaN。ddof
:int
,默认值是 1
自由度的调整因子,用于计算样本的标准误差。标准误差的计算公式为:
其中 n
是样本大小。ddof
值通常为 1
,表示采用样本标准差。
numeric_only
:bool
,默认值是 False
是否只计算数值类型的列。
True
,则只考虑数值类型的列;False
,所有数据类型都参与计算(只要能够计算)。****kwargs
**:其他关键词参数,用于扩展功能或在方法调用时传递给其他内部函数。
返回一个包含标准误差的 DataFrame 或 Series。结果的索引与输入数据一致。
s = pd.Series([1, 2, 3])
s.sem().round(6)
# 0.57735
DataFrame:
df = pd.DataFrame({'a': [1, 2], 'b': [2, 3]}, index=['tiger', 'zebra'])
df
'''
a b
tiger 1 2
zebra 2 3
'''
df.sem()
'''
a 0.5
b 0.5
dtype: float64
'''
用 axis=1
df.sem(axis=1)
'''
tiger 0.5
zebra 0.5
dtype: float64
'''
在这种情况下,应将numeric_only设置为True以避免出错。
df = pd.DataFrame({'a': [1, 2], 'b': ['T', 'Z']},
index=['tiger', 'zebra'])
df.sem(numeric_only=True)
'''
a 0.5
dtype: float64
'''
假设我们有一个包含学生考试成绩的 DataFrame,我们可以使用 sem()
方法来计算每门课程成绩的标准误差。
import pandas as pd
# 创建示例数据
data = {
'数学': [75, 85, 95, 65, 70],
'英语': [88, 92, 85, 70, 80],
'物理': [92, 90, 87, 85, 80]
}
df = pd.DataFrame(data)
# 计算标准误差
sem_df = df.sem()
print(sem_df)
'''
数学 5.385165
英语 3.794733
物理 2.083267
dtype: float64
'''
在这个例子中,标准误差反映了各门课程成绩的分布情况。数值越大,表示学生成绩的离散程度越大;数值越小,表示成绩较为集中。
更新时间:2024-08-08 21:26:58 标签:pandas python 标准误差 sem