[Python] With... as... per sopprimere NameError

Pietro peter.zamb a gmail.com
Mar 14 Maggio 2013 16:03:07 CEST


Ciao Pietro

2013/5/14 Pietro Battiston <me a pietrobattiston.it>:
> ¹ Per chi si stesse preoccupando per la mia mente malata: voglio potere
> scrivere codice che lavora sulle colonne di pandas.DataFrame riferendomi
> direttamente alle colonne con il loro nome, e magari stabilendo un
> filtering su una condizione prefissata, semplificando _enormemente_ il
> codice delle analisi econometriche che sviluppo con pandas/statsmodels.

In pandas già puoi chimare le colonne con il loro nome esattamente
come dal tuo esempio:

tot = df["x"] + df["y"]

se proprio ci tieni a scrivere l'espressione tot = x + y, l'unico modo
che vedo è:

x = df['x']
y =  df['y']
tot = x + y

Ma non lo trovo più leggibile...

Non puoi pretendere di definire un dataframe che contiene al suo
interno delle colonne "x" e "y" e pensare di vedere queste variabili
come globali, o meglio lo puoi fare ma lo devi fare esplicitamente,
vedi l'esempio qui sopra (ricorda: Explicit is better than implicit!).

Secondo me (se ho capito bene il nocciolo della questione) stai
cercando di forzare il linguaggio a fare qualcosa che di pythonico ha
poco, nel caso puoi definire un nuovo "linguaggio" che internamente
utilizza python e le dataframes di pandas utilizzando:
http://www.dabeaz.com/ply/ se l'obbiettivo è avere qualcosa di più
semplice per l'utente... ma personalmente in questo caso non sono
convinto ne valga la pena...

Buon lavoro.

Pietro


Maggiori informazioni sulla lista Python