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

Python如何精简分组字典并批量执行t检验减少冗余代码

Python 生物数据t检验冗余代码优化方案

核心思路是将固定的统计逻辑封装到循环中,把易变的检验配置(指标、对比分组)抽离成可维护的配置项,完全消除逐行手写检验的冗余代码,同时100%保留你需要的结果字典结构。


完整实现代码

import pandas as pd
from scipy import stats

# 一次性完成数据读取、分组字典构建,后续所有检验复用
df = pd.read_csv("Dafniyot_Data.csv")
GROUP_LIST = ["CII", "CCI", "CCC", "III", "CIC", "ICC", "IIC", "ICI"]
group_data = {g: df[df["group"] == g] for g in GROUP_LIST}

# 检验任务配置区:后续新增/修改检验只需要改这里,不用动统计逻辑
TEST_CONFIG = [
    {
        "res_key": "t_F0",
        "metric_col": "FERTUNITY - grandmaternal(F0)",
        # 分组对顺序和你原有t_F0a/t_F0b/t_F0c/t_F0d的对比顺序保持一致即可
        "compare_pairs": [
            ("CII", "CCI"),
            ("CCC", "III"),
            ("CIC", "ICC"),
            ("IIC", "ICI")
        ]
    },
    # 后续要加N_offspring、survival等其他指标的检验,直接按格式追加配置即可,示例:
    # {
    #     "res_key": "t_offspring",
    #     "metric_col": "N_offspring",
    #     "compare_pairs": [("CII", "III"), ("CCI", "ICI"), ("CCC", "ICC"), ("CIC", "IIC")]
    # }
]

# 批量执行所有t检验,自动生成要求格式的结果
stats_result = {}
for task in TEST_CONFIG:
    t_res_list = []
    for g1, g2 in task["compare_pairs"]:
        # 自动提取对应分组的指标数据,过滤缺失值避免统计报错
        d1 = group_data[g1][task["metric_col"]].dropna()
        d2 = group_data[g2][task["metric_col"]].dropna()
        # 独立样本t检验,equal_var参数按需调整:方差齐设为True,不齐设为False
        t_val, p_val = stats.ttest_ind(d1, d2, equal_var=False)
        # 如果只需要t统计量就只存t_val,需要p值可以存元组(t_val, p_val)
        t_res_list.append(t_val)
    # 严格匹配你需要的字典结构
    stats_result[task["res_key"]] = {task["metric_col"]: t_res_list}

# 直接取出你需要的t_F0变量即可,结构和你原有写法完全一致
t_F0 = stats_result["t_F0"]

使用说明

  • 新增检验不需要重复写stats.ttest_ind调用,只需要在TEST_CONFIG中追加配置项,填写结果键名、待检验列名、对比分组对即可
  • 最终输出的t_F0结构完全匹配要求:{'FERTUNITY - grandmaternal(F0)': [t_F0a, t_F0b, t_F0c, t_F0d]},列表内结果顺序和你在compare_pairs中写的分组对顺序完全对应
  • 如果需要调整t检验参数(单侧/双侧检验、方差齐性设置),只需要修改循环中ttest_ind的入参,所有检验任务会同步生效,无需逐行修改
  • 分组数据只做一次筛选存入group_data字典,所有检验复用,避免重复筛选数据的性能损耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:24:22