You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将scipy stats.t.interval生成的置信区间四舍五入保留两位小数

解决方案

scipy.stats.t.interval 返回的是包含置信区间下限、上限的浮点型元组,直接对返回结果做逐元素四舍五入即可,有两种常用实现方式:

方式1:保留原CI列的元组结构

直接在lambda逻辑中对返回结果调用np.round()保留2位小数,再转回元组和原有格式对齐:

import pandas as pd
import numpy as np
from scipy import stats

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

df['CI'] = df.apply(
    lambda row: tuple(np.round(
        stats.t.interval(0.95, len(df)-1, loc=np.mean(row), scale=stats.sem(row)),
        2
    )), 
    axis=1
)

方式2:拆分置信区间为独立两列

如果需要后续单独调用上下限数值,可以拆分存储为两个独立列,格式更友好:

df[['CI_lower', 'CI_upper']] = df.apply(
    lambda row: pd.Series(
        np.round(stats.t.interval(0.95, len(df)-1, loc=np.mean(row), scale=stats.sem(row)), 2)
    ), 
    axis=1
)

两种方案都通过np.round(目标序列, 保留小数位数)实现精度控制,无需单独拆分元组再拼接处理。

内容的提问来源于stack exchange,提问作者Niam45

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:54:04