2016-02-25 33 views
5

Spero che questa non sia una domanda aperta per la discussione. Ho intenzione di fornire alcuni dettagli per il mio caso specifico.È meglio archiviare i datagrammi di Pandas in un dizionario o in un pannello?

Sono nuovo di Panda e ho bisogno di memorizzare diversi array 2D, dove le colonne rappresentano le frequenze e le righe rappresentano le direzioni (spettri delle onde 2D, se siete curiosi). Ogni matrice rappresenta un tempo specifico.

sto memorizzazione di queste matrici come Pandas DataFrames, ma per il loro mantenimento in un unico oggetto ho pensato di 2 opzioni:

  1. Memorizzazione dei DataFrames in un dizionario in cui la chiave è il timestamp.

  2. Memorizzazione dei DataFrames in un pannello di Pandas in cui l'elemento è il timestamp.

La prima opzione sembra semplice e ha la flessibilità di memorizzare matrici con dimensioni, indici e nomi di colonne diversi. La seconda opzione sembra migliore per l'elaborazione dei dati, poiché i pannelli hanno metodi specifici e possono anche essere facilmente salvati o esportati (ad es. In csv o pickle).

Quale delle due opzioni è più adatta in termini di: velocità, utilizzo della memoria, flessibilità e analisi dei dati?

Saluti

+0

dataframe panda. Non vedo come questo non abbia la flessibilità che hai descritto per l'opzione 1. Forse un semplice esempio ripetibile illuminerebbe le cose? – kilojoules

+0

Spiacente, sto modificando la mia domanda. Non ho spiegato che ho già archiviato i dati in Data Frames. La mia domanda è qual è l'opzione migliore per mantenere i DataFram insieme in un singolo oggetto. – jcdoming

+1

Hai considerato la possibilità di annidare i frame di dati? – kilojoules

risposta

1

Non penso che sia necessario un pannello. Raccomando un approccio dataframe nidificato.

+0

Siamo spiacenti. Potresti dirmi come si fa? Ho bisogno di aggiungere ogni dataframe al dataframe principale all'interno di un ciclo e non sembra funzionare. Forse un codice di esempio potrebbe aiutare. Questo è il modo in cui lo sto facendo finora usando i dizionari: 'E [date] = pd.DataFrame (Aux, index = f, columns = dirs)'. Dove * E * è un dizionario, * date * è un float e * Aux *, * f * e * dirs * un elenco. – jcdoming

+0

Un esempio semplice e ripetibile renderebbe questa risposta più semplice. Che errore viene prodotto? Fondamentalmente, si vuole ma 'NaN's dove non ci sono voci valide. – kilojoules