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

如何在Python中通过for循环批量获取两个DataFrame指定列的Wilcoxon检验p值列表

批量对指定列执行Wilcoxon检验并获取p值

完全懂你的痛点——手动逐个处理多列效率太低,用循环批量处理就完美解决这个问题了。我们可以通过定义目标列列表,遍历每个列执行检验,最后把结果整理成直观的格式(比如字典,方便对应列名和p值)。

完整实现代码

from scipy import stats

# 第一步:定义需要分析的目标列(直接排除不需要的counter_a)
target_columns = ['counter_eh', 'counter_uff', 'counter_mm']

# 第二步:初始化字典存储列名与与对应p值(比单纯列表更直观,能明确每个p值属于哪一列)
column_p_values = {}

# 第三步:循环遍历每个目标列,执行Wilcoxon检验
for col in target_columns:
    # 对两个DataFrame的当前列做检验
    test_result = stats.wilcoxon(dataframe_presencial_B2[col], dataframe_virtual_B2[col])
    # 将列名和对应的p值存入字典
    column_p_values[col] = test_result.pvalue

# 第四步:输出结果(按需使用,也可以直接用字典做后续分析)
for column_name, p_val in column_p_values.items():
    print(f"列「{column_name}」的Wilcoxon检验p值: {p_val:.4f}")  # 保留4位小数更易读

代码说明

  • 目标列定义:通过target_columns列表精准指定要处理的列,直接排除counter_a,避免无效计算。
  • 结果存储:用字典存储结果,相比单纯的列表,能清晰对应每个p值所属的列名,后续分析更方便。
  • 循环逻辑:自动遍历所有目标列,重复执行检验逻辑,无需手动复制粘贴代码,减少出错概率。

如果之后需要单纯的p值列表,只需要提取字典的值即可:

p_value_list = list(column_p_values.values())
print(p_value_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:49:05