Il giorno mar, 14/05/2013 alle 15.03 +0100, Pietro ha scritto: > Ciao Pietro > > 2013/5/14 Pietro Battiston <m...@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...
No, appunto. Lo sarebbe senza la necessità delle prime due righe - esattamente quello che voglio. > 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!). > Ma io non le voglio globali! Voglio appunto che esistano solo all'interno in un (esplicitissimo) with df.context() .... Dal punto di vista concettuale, non vedo lo scandalo. Sarebbe come dire with df["x"] as x: with df["y"] as y: with df["z"] as z: ... ... automaticamente per tutte le variabili in "df" (dopo avere opportunamente definito __enter__ e __exit__ dummy)... > 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... Vedi l'altra mail per mie personalissime stime di quanto "ne valga la pena"... ma ripeto, non avrei bisogno di ply, mi basterebbe un "eval()"... e tutta una sovrastruttura - che è quello che voglio evitare (quella sì, sarebbe pochissimo pythonica). ciao Pietro _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python