Utilizzo la libreria Pandas per l'analisi delle serie temporali di telerilevamento. Alla fine mi piacerebbe salvare il mio DataFrame in csv usando le dimensioni del blocco, ma mi imbatto in un piccolo problema. Il mio codice genera 6 array NumPy che converto in serie Pandas. Ognuna di queste serie contiene un sacco di oggettiUtilizzo di Pandas per creare DataFrame con la serie, con conseguente errore di memoria
>>> prcpSeries.shape
(12626172,)
vorrei aggiungere la serie in una Pandas DataFram (df) così posso salvarli blocco per blocco in un file CSV.
d = {'prcp': pd.Series(prcpSeries),
'tmax': pd.Series(tmaxSeries),
'tmin': pd.Series(tminSeries),
'ndvi': pd.Series(ndviSeries),
'lstm': pd.Series(lstmSeries),
'evtm': pd.Series(evtmSeries)}
df = pd.DataFrame(d)
outFile ='F:/data/output/run1/_'+str(i)+'.out'
df.to_csv(outFile, header = False, chunksize = 1000)
d = None
df = None
Ma il mio codice rimane bloccata al seguente riga di dare un errore di memoria
df = pd.DataFrame(d)
Qualche suggerimento? È possibile riempire il blocco DataFrame di Pandas per blocco?
Si può fare un dataframe da una singola colonna: pd.DataFrane ({'tmax': pd.Series (tmaxSeries)})? –
sì, che funziona – Mattijn
crea un frame con la prima serie e aggiungili in sequenza, ad es. '' df = DataFrame ({'prcp': pd.Series (prcpSeries)}); df ['tmax'] = pd.Series (tmaxSeries) ''. Probabilmente dovresti scriverlo su un HDF5 in ogni caso, vedi: http://pandas.pydata.org/pandas-docs/dev/io.html#hdf5-pytables – Jeff