Sto cercando di leggere un file csv con i più colonne utilizzando il Pyomo DataPortal funzione data.load
per inizializzare un indice i
ma sono in esecuzione in un problema per il quale non è possibile selezionare per la colonna voglio che utilizza il select
argomento.
Qui è il codice che sto correndo.
from pyomo.environ import *
model = AbstractModel()
model.i = Set()
data = DataPortal()
data.load(filename='fips.csv',select='fips',set=model.i)
Il fips.csv
il file contiene più colonne con FIPS codice di dettagli. Sto cercando di selezionare la colonna denominata fips
.
L'errore che ricevo è il seguente.
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
Ciò che è fonte di confusione su questo, per me, è che questo errore si presenta solo la prima letteraf
) della colonna che si desidera selezionare (fips
). Non so quale potrebbe essere la causa in Python.
Ho cercato di caricare i dati nell'utilizzo di Panda e tutte le intestazioni di colonna sembrava essere caricato correttamente, ma voglio capire perché non funziona utilizzando il data.load
funzione. Io sono in grado di caricare in una sola colonna CSV bene (che è una soluzione semplice, in cui ho diviso la mia CSV in più di una colonna CSVs), ma mi piacerebbe avere il select
funzione di lavoro per multi-colonna CSVs per semplicità e facilità di utilizzo.