2017-06-16 58 views
1

我在Pyomo有一個抽象模型,我需要運行幾次更改數據,這就是爲什麼我想從csv或xls導入一些簡單的數據。我嘗試了DataPortal以及直接寫入數據文件,但沒有成功,並會感謝您的幫助!pyomo從csv或xlsx導入數據

DataPortal

我深知網站https://github.com/Pyomo/pyomo/blob/master/examples/doc/pyomobook/attic/ref-dataportal/dataportal_tab.py的,並試圖只實現相應的它 - 沒有成功:/

我嘗試導入「時間跨度」爲一組。我有一個在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導入只導入元組,使得其包括相鄰列到「時間跨度」,然而,僅具有一個尺寸。

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:

通過Data.dat文件直接

謝謝! 聖馬洛

回答

0

嘗試使用像openpyxl不同庫中打開文件,然後將其加載到pyomo對象

1

謝謝您的回答!我嘗試了一些像dataframes但不幸運的對象......我必須承認,我還沒有嘗試openpyxl,但最終通過編寫一個函數將數據從csv寫入AMPL格式文件(.dat )。不是很優雅,但它的作品:)