2017-06-16 6 views
1

J'ai un modèle abstrait dans Pyomo que j'ai besoin d'exécuter quelques fois avec des données changeantes, c'est pourquoi j'aimerais avoir une importation de données facile de csv ou xls. J'ai essayé le DataPortal ainsi que l'écriture directe d'un fichier de données mais je n'y arrive pas et j'apprécierais votre aide !!Importer des données dans Pyomo de csv ou xlsx

DataPortal

Je suis bien conscient du site https://github.com/Pyomo/pyomo/blob/master/examples/doc/pyomobook/attic/ref-dataportal/dataportal_tab.py et a essayé de le mettre en œuvre simplement en conséquence - sans succès:/

J'essaie d'importer « timespan » comme un ensemble. J'ai une colonne appelée 'timespan' dans le fichier csv/xls qui va de 0 à 23.

Importation de 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) 

Aucune des deux options de plage (titre de la colonne et Excel gamme) travail, le délai reste vide. importation de CSV:

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

l'importation de CSV importe uniquement uplets de telle sorte qu'elle comprend des colonnes voisines dans « timespan » qui, cependant, n'a qu'une seule dimension.

directement via data.dat fichier:

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

Lancers

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

Comment puis-je importer des données pour mon modèle abstrait pyomo?

Merci! Malo

Répondre

0

Essayez d'utiliser une autre bibliothèque comme openpyxl pour ouvrir les fichiers, puis les charger dans des objets pyomo

1

Merci pour votre réponse! J'ai essayé quelques objets comme des dataframes mais je n'ai pas eu de chance ... Je dois admettre que je n'ai pas encore essayé openpyxl mais j'ai finalement réussi à écrire une fonction qui écrit mes données depuis un csv dans un fichier de type AMPL (.dat). Pas très élégant mais ça marche :)