You need to enable JavaScript to run this app. 执行t检验相关Python代码出现ValueError,无法确定具体报错原因
优惠活动
大模型
产品
解决方案
定价
更多

执行t检验相关Python代码出现ValueError,无法确定具体报错原因

错误原因排查

    1. 存在无效导入语句
      开头的import libraries不属于合法Python语法,运行会直接触发导入报错,需要删除。
    1. 统计函数使用不匹配
      你的需求是对两组独立样本做t检验,也已经提前导入了scipy.stats.ttest_ind,但实际调用的是stats.pearsonr。后者是计算两个变量皮尔逊相关系数的函数,要求输入的两个数组长度必须完全相等,而按性别拆分后的男性、女性样本量大概率不一致,调用pearsonr就会触发ValueError。
    1. 打印逻辑错误
      第4步检验bmi的代码中,两次打印都输出了t值tb,漏了p值pb的输出。

修正后代码

1. 导入依赖库

import pandas as pd
from scipy import stats
from scipy.stats import ttest_ind

df = pd.read_csv('https://tf-assets-prod.s3.amazonaws.com/tf-curric/data-analytics-bootcamp/medicalcosts.csv')

2. 按性别字段拆分生成两个独立的DataFrame

df_male = df.loc[df['sex'] == 'male']
df_female = df.loc[df['sex'] == 'female']

3. 对男性和女性的charges列执行t检验并打印结果

# 若假设两组方差齐可删除equal_var=False参数
tc, pc = ttest_ind(df_male.charges, df_female.charges, equal_var=False)
print(tc)
print(pc)

4. 对男性和女性的bmi列执行t检验并打印结果

# 若假设两组方差齐可删除equal_var=False参数
tb, pb = ttest_ind(df_male.bmi, df_female.bmi, equal_var=False)
print(tb)
print(pb)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 19:57:03