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

如何生成多变量不同取值组合的所有可能和及对应方案的DataFrame

生成多变量取值组合的所有可能和并存储到DataFrame

问题描述

现有多个变量的取值集合:

A = [0.9, 0.7, 1, 0.5]
B = [0, 1]
C = [0.3, 0.6, 0.9]
D = [-1.8, 0]

需要生成所有变量取值组合的求和结果,同时为每个组合生成对应的方案标识,最终将数据存入Pandas DataFrame,格式如下:

方案求和结果
A0.9_B0_C0.3_D-1.8-0.6
A0.9_B1_C0.3_D-1.80.4

解决方法

可以通过itertools.product生成所有变量的笛卡尔积组合,再遍历计算求和结果并生成方案标识,最后存入DataFrame,步骤如下:

  1. 生成全组合:用itertools.product快速生成所有变量取值的笛卡尔积,覆盖所有可能的组合。
  2. 计算与标识:对每个组合,计算求和结果,同时拼接变量名与对应值生成方案字符串。
  3. 存入DataFrame:将方案和结果整理成结构化数据,转换为DataFrame。

完整代码示例

import itertools
import pandas as pd

# 定义变量及其取值集合
variables = {
    'A': [0.9, 0.7, 1, 0.5],
    'B': [0, 1],
    'C': [0.3, 0.6, 0.9],
    'D': [-1.8, 0]
}

# 生成所有可能的取值组合
all_combinations = itertools.product(*variables.values())

# 收集方案和对应的求和结果
result_data = []
for combo in all_combinations:
    # 拼接方案字符串(变量名+取值,下划线分隔)
    plan = '_'.join(f"{key}{val}" for key, val in zip(variables.keys(), combo))
    # 计算当前组合的和
    sum_result = sum(combo)
    result_data.append({"方案": plan, "求和结果": sum_result})

# 转换为DataFrame
df = pd.DataFrame(result_data)

# 查看前几行示例
print(df.head())

示例输出

运行代码后,DataFrame的前5行结果如下:

方案求和结果
A0.9_B0_C0.3_D-1.8-0.6
A0.9_B0_C0.3_D01.2
A0.9_B0_C0.6_D-1.8-0.3
A0.9_B0_C0.6_D01.5
A0.9_B0_C0.9_D-1.80.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:25:16