从csv或xlsx导入Pyomo中的数据

时间:2017-06-16 02:59:48

标签: load data-import pyomo

我在Pyomo中有一个抽象模型,我需要运行几次更改数据,这就是为什么我想从csv或xls导入一些简单的数据。我尝试了DataPortal以及直接编写数据文件,但没有成功,非常感谢您的帮助!!

DataPortal

我很清楚网站https://github.com/Pyomo/pyomo/blob/master/examples/doc/pyomobook/attic/ref-dataportal/dataportal_tab.py,并试图相应地实施它 - 但没有成功:/

我尝试导入&time;' timepan'作为一组。我有一个名为' timespan'在csv / xls文件中,从0到23。

从xlsx导入:

data = DataPortal()
data.load(filename='Operational_Data.xlsx', range='timespan', set=dispatch.timespan)
data.load(filename='Operational_Data.xlsx', range=('D2:D49'), param='elload', index=dispatch.timespan)
instance = dispatch.create_instance(data)

两个范围选项(列标题和Excel范围)都不起作用,时间跨度保持为空。 从csv导入:

data.load(filename='Operational_Data.csv', set='timespan')

从csv导入只会导入元组,使其包含相邻列到&time;' timepan'但是,它只有一个维度。

直接通过data.dat文件:

load Operational_Data.csv using=csv format=set : timespan=[timespan];

抛出

OSError: Must specify at least one set or parameter name that will be loaded.

如何导入抽象pyomo模型的数据?

谢谢! 马洛

2 个答案:

答案 0 :(得分:1)

感谢您的回答!我尝试了几个像数据帧这样的对象,但是不幸运......我必须承认我还没有尝试过openpyxl,但最终成功地写了一个函数,它将我的数据从csv写入类似AMPL格式的文件(.dat )。不是很优雅,但它的工作原理:)

答案 1 :(得分:0)

尝试使用openpyxl之类的其他库来打开文件,然后将它们加载到pyomo对象中