[Python] DataFrame multidimensionale in pandas

Enrico Franchi enrico.franchi a gmail.com
Ven 22 Mar 2013 16:27:56 CET


On Mar 22, 2013, at 10:45 AM, Margherita Di Leo <diregola a gmail.com> wrote:

> sto esplorando la possibilita` di maneggiare files grib in python convertendoli in una struttura simile ad un database spaziale, e mi chiedevo se qualcuno di voi avesse utilizzato qualcosa di simile con pandas. 
> Quello che voglio costruire e` una matrice multidimensionale, in cui x e y sarebbero latitudine e longitudine, mentre gli n layer rimanenti (n dimensioni) dovrebbero essere popolati con varie informazioni che ricavo da un file grib, per leggere il quale ho trovato il frontend Python delle GRIB API (Pygrib). Avete qualche esempio o esperienza da condividere?

Non direttamente su quello che vuoi fare. Uso Pandas spesso per fare analisi di dati.

Ti invito a riflettere su alcuni fattori: 
1. di base le matrici di numpy (e quindi pandas) sono *dense*. Se sali con il numero di dimensioni, o il problema e' molto piccolo, oppure scoppia tutto.
2. il supporto di Pandas per  strutture con dimensione >3 e' sperimentale. Non lo ho mai usato (anzi, a dire il vero, non ho mai usato manco il Panel, se non di rado).

Dopo di che, la mia impressione e' che *forse* non ti serve tutto questo. In primo luogo, gli indici di Pandas possono essere relativamente complessi. Puoi avere n colonne che fanno da indice, non necessariamente vuoi usare righe e colonne per indicare latitudine e longitudine. Puoi benissimo avere una cosa come:

lat long d1 d2 d3 … dn
0    10   ….
0    20  ….
10 10 ….

Che e' decisamente piu' saggio. Oltretutto Pandas ha funzioni builtin per gestire timeseries, quindi *forse* vuoi avere anche un po' di quella roba come indice. Di piu' non so dirti, se non di guardare bene la documentazione. Non sono familiare con il tuo caso d'uso e probabilmente non posso diventarlo "mailing-list time". 


-enrico



Maggiori informazioni sulla lista Python