Импорт данных в Pyomo из csv или xlsx

У меня есть абстрактная модель в Pyomo, которую мне нужно запустить пару раз с изменением данных, поэтому я хотел бы иметь простой импорт данных из csv или xls. Я попробовал DataPortal, а также напрямую записал файл данных, но безуспешно и был бы признателен за вашу помощь !!

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 импортируются только кортежи, так что соседние столбцы включаются в «промежуток времени», который, однако, имеет только одно измерение.

Непосредственно через файл 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?

Спасибо! Мало


person Malo    schedule 16.06.2017    source источник


Ответы (2)


Спасибо за Ваш ответ! Я попробовал пару объектов, таких как dataframes, но мне не повезло ... Должен признать, что я еще не пробовал openpyxl, но, наконец, мне удалось написать функцию, которая записывает мои данные из csv в файл, подобный формату AMPL (.dat ). Не очень элегантно, но работает :)

person Malo    schedule 21.06.2017

Попробуйте использовать другую библиотеку, например openpyxl, для открытия файлов, а затем загрузите их в объекты pyomo.

person japseow    schedule 16.06.2017