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

如何生成pandas DataFrame列的两两组合并正确索引用于Fisher精确检验

问题原因

你当前报错的核心是误将两个列名拼接成了单个字符串,DataFrame中不存在名为Gender, Employed的单列,和列名加不加引号没有关联。

正确实现代码

import pandas as pd
from itertools import combinations

# 构造示例DataFrame
d = {'Gender': [1,1,0,1,0], 'Employed': [1,0,0,1,1], 'Name':['Alan', 'Joe', 'Sam', 'Amy', 'Chloe']}
d = pd.DataFrame(d)

# 生成列的两两组合,保留元组格式,不要转拼接字符串
pairwise_combinations = list(combinations(d.columns, 2))

# 遍历提取数据
for col_pair in pairwise_combinations:
    # 直接传入列名列表索引即可
    data = d[list(col_pair)]
    # 此处插入你的Fisher's exact test计算逻辑
    # 示例打印验证
    print(f"处理列对:{col_pair}")
    print(data, "\n")

可选:生成带引号的列对字符串(仅用于日志/展示)

如果需要输出带引号的列对格式做记录,可以单独生成该字段,不要用它来索引DataFrame:

pair_display = [f"'{pair[0]}', '{pair[1]}'" for pair in pairwise_combinations]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:24:06