Pyomo DataPortal不读在多列CSV正确

0

的问题

我试图阅读csv多列使用Pyomo DataPortal功能 data.load 初始化指数 i 但我跑进一个问题,我无法选择列我想要使用 select 参数。

这里是代码我正在运行。

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

data = DataPortal()
data.load(filename='fips.csv',select='fips',set=model.i)

fips.csv 文件中有多个列有别代码的详细信息。 我想选择列所谓 fips.

错我正是以下。

Model declaration 'f' not found in returned query columns
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Users/cwayner/PycharmProjects/SeniorThesis/pyomo/dataportal/DataPortal.py", line 164, in load
    self._data_manager.read()
  File "/Users/cwayner/PycharmProjects/SeniorThesis/pyomo/dataportal/plugins/csv_table.py", line 58, in read
    self._set_data(tmp[0], tmp[1:])
  File "/Users/cwayner/PycharmProjects/SeniorThesis/pyomo/dataportal/TableData.py", line 117, in _set_data
    header_index.append(headers.index(str(i)))
ValueError: 'f' is not in list

什么是混乱的关于这个对我来说,这种错误包括仅仅是第一个字母(f)的柱,我想选择(fips). 我不知道可能是什么造成了这种在蟒蛇。

我已经尝试了载的数据在使用的大熊猫和所列的标题似乎是正确装载的,但是我想弄清楚为什么它不起作用 data.load 功能。 我能载在一个单列CSV就好了(这是一个简单的解决办法在我拆我的CSV成多个单列Csv),但我想得到的 select 功能工作多列Csv为简单起见和便于使用。

csv pyomo python
2021-11-18 16:04:59
1

最好的答案

0

如果你仔细看看 文件select 它说的论点应该是一个列表或tuple. 因此,内部这一职能,论点是"迭代". 而且,串 可迭代 使第一批"f"被剥离。

解决方案:如果你只有一个列名,把它放入1件列表或1-元tuple. 注:你需要的后的逗号在一个1-元组件,或者它仅仅是解释为括号。 试试这个:

data.load(filename='fips.csv',select=('fips',),set=model.i)

还在同一部分的文件,有一个注意到关于加载多个参数,这可能是有帮助的。

2021-11-18 17:18:05

谢谢你这么多! 我不知道我会做什么没有这种社区。
Claire Wayner

伟大的。 正如我提到过你的其他后你,这回答了问题,请点击"检验标记的"下一个回答关闭了(并给我点微薄的...大声笑)
AirSquid

好吧,我可以说太快了。 当尝试你的代码只是现在,我遇到一个不同的错误。 IndexError: string index out of range. 你有任何想法什么? 列的数据的框架,我试图阅读了整数,不一串。
Claire Wayner

我怀疑这一错误是从未来的负荷运作。 检查线路数目,等等。 印设定后载入。 如果不工作和你被卡住了削减它降低到最低限度可重复的例子,随着几线的数据源,使误差可被再现和发布一个新的问题。
AirSquid

好吧,也许是有问题的这种方法的总体。 我只是修改的"选择"的命令,我不能让它加载一个单独的设定正确。 它可以做一个索引的参数作为在该文件,但我不能让它工作组。 你也许想要考虑的一个不同的数据结构,该结构更加具有可预测性。
AirSquid

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................