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

Pandas遍历多参数多水平组合计算并拼接结果DataFrame

Pandas多参数组合遍历计算实现方案

注意事项

原示例代码中Y^2是Python的按位异或运算符,并非数学意义上的平方计算,和期望输出逻辑不符,实现时需要修正为幂运算写法Y**2才能得到正确结果。

实现步骤

  • 将单组X、Y参数的计算逻辑封装为独立函数,输入参数值返回对应单行结果DataFrame
  • 定义X、Y两个参数的候选取值列表
  • 遍历两个参数所有取值的笛卡尔积组合,逐个调用计算函数生成单组结果
  • 纵向拼接所有单组结果,重置索引后得到完整的全组合结果DataFrame

完整实现代码

import pandas as pd
from itertools import product

# 封装核心计算逻辑
def calc_result(X: float, Y: float) -> pd.DataFrame:
    A = X * Y
    B = X * (Y ** 2)
    # 传入标量时需要包装为列表,避免DataFrame初始化报错
    return pd.DataFrame({"X": [X], "Y": [Y], "A": [A], "B": [B]})

# 定义参数候选值
X_list = [1, 2, 3, 4]
Y_list = [2, 4, 6, 8]

# 遍历所有组合收集计算结果
result_collector = []
for x, y in product(X_list, Y_list):
    result_collector.append(calc_result(x, y))

# 拼接所有结果
final_df = pd.concat(result_collector, ignore_index=True)

# 打印验证结果
print(final_df)

无额外依赖的遍历写法

如果不想引入itertools库,可以直接用双重循环实现组合遍历,效果完全一致:

result_collector = []
for x in X_list:
    for y in Y_list:
        result_collector.append(calc_result(x, y))
final_df = pd.concat(result_collector, ignore_index=True)

运行上述代码输出的结果和给出的期望示例完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:42:24