首页 > 解决方案 > 查找数据框中各行的 t 置信区间

问题描述

这是一个示例数据框,我的实际数据框有 100 多行。

nums_1  nums_2  nums_3
1       1       8
2       1       7
3       5       9

有没有一种方法可以计算每行的 95% 置信区间?一种适用于大型数据框的方法?

df = pd.DataFrame({'nums_1': [1, 2, 3], 'nums_2': [1, 1, 5], 'nums_3' : [8,7,9]})

标签: pythonpandasdataframe

解决方案


您可以使用stats.norm.interval和查找 95% 水平的置信区间,每行中的值numpy.mean和值如下所示:numpy.std

from scipy import stats
import numpy as np

df = pd.DataFrame({'nums_1': [1, 2, 3], 'nums_2': [1, 1, 5], 'nums_3' : [8,7,9]})

df['95_interval'] = df.apply(lambda row : \
                             stats.norm.interval(0.95, loc=np.mean(row), 
                                                 scale=np.std(row)), axis=1)

输出:

>>> df
    nums_1  nums_2  nums_3  95_interval
0       1   1           8   (-3.134217846965163, 9.80088451363183)
1       2   1           7   (-1.8109239490159825, 8.477590615682649)
2       3   5           9   (0.7776575196232134, 10.55567581371012)

推荐阅读