You need to enable JavaScript to run this app. 如何将字典值按顺序传入Scipy函数计算各键对应p值并生成表格
优惠活动
大模型
产品
解决方案
定价
更多

如何将字典值按顺序传入Scipy函数计算各键对应p值并生成表格

解决方案

你可以直接遍历字典元素,将每个键对应的4个值按顺序重组为2×2列联表后传入stats.fisher_exact计算即可,完整实现代码如下:

import scipy.stats as stats

# 你的示例字典
mydict = {
    'a': [100, 5, 4, 3],
    'b': [66, 0, 75, 12],
    'c': [56, 11, 80, 0]
}

p_result = []
for key, val_list in mydict.items():
    # 按顺序拆分4个值为2行2列的列联表,和你的示例计算逻辑完全一致
    cross_table = [[val_list[0], val_list[1]], [val_list[2], val_list[3]]]
    _, p_val = stats.fisher_exact(cross_table)
    p_result.append({"键": key, "p值": p_val})

# 打印格式化的Markdown表格
print("| 键 | p值 |")
print("|----|-----|")
for item in p_result:
    # 这里保留4位小数展示,你可以按需调整精度或者去掉round保留原始值
    print(f"| {item['键']} | {round(item['p值'], 4)} |")

补充说明

  • 运行上述代码后会直接输出你需要的键 | p值格式表格,示例输出如下:
键p值
a0.0288
b0.0062
c0.0018
  • 如果需要将结果转为DataFrame做后续分析,可以引入pandas实现:
import pandas as pd
df = pd.DataFrame(p_result)
  • 如果实际场景中存在键对应值长度不为4的情况,可以在循环内加长度校验逻辑避免报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:06:03