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

Pyomo DataPortal读取多列CSV时select参数无法正常选择指定列

问题根源

Pyomo的DataPortal.load方法的select参数预期接收列表类型的列名集合,即使仅选择单列也需要用列表包裹。你直接传入字符串'fips'时,Python会将字符串视为可迭代对象,Pyomo会逐个读取字符串中的字符作为待选列名,因此第一个字符'f'被提取出来当做列名检索,自然匹配不到对应列,触发了报错。

修复方法

仅需将select参数的取值改为列表格式即可,修改后的代码如下:

from pyomo.environ import *
model = AbstractModel()
model.i = Set()

data = DataPortal()
data.load(filename='fips.csv', select=['fips'], set=model.i)
拓展说明

如果后续需要同时选取多列加载多维度Set或Param,直接在select对应的列表中添加对应列名即可,无需拆分CSV为多个单文件,示例如下:

# 假设要加载fips和year两列作为二维Set的索引
data.load(filename='fips.csv', select=['fips', 'year'], set=model.ij)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:15:03