2012-09-24 6 views
31

Ho un dataframe in panda python con diverse colonne prese da un file CSV.Somma tutte le colonne con una ricerca di nomi con caratteri jolly usando Python Pandas

Per esempio, data =:

Day P1S1 P1S2 P1S3 P2S1 P2S2 P2S3 
1 1 2 2 3 1 2 
2 2 2 3 5 4 2 

E quello che mi serve è quello di ottenere la somma di tutte le colonne il cui nome inizia con P1 ... qualcosa come P1 * con un carattere jolly.

qualcosa come il seguente, che dà un errore:

P1Sum = data["P1*"]

C'è qualche motivo per cui per fare questo con i panda?

+0

C'è qualche motivo per cui le persone non rispecchiano questa domanda? – catchmeifyoutry

+0

Anche io non capisco. Voglio dire, può essere una cosa molto semplice, ma ho cercato la documentazione di Pandas e non ho trovato nessuna risposta. – jbssm

+1

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.filter.html?highlight=filter#pandas.DataFrame.filter –

risposta

43

Ho trovato la risposta.

Utilizzando i dati, dataframe dalla domanda:

from pandas import * 

P1Channels = data.filter(regex="P1") 
P1Sum = P1Channels.sum(axis=1) 
0

Grazie per la jbssm punta, per chiunque altro alla ricerca di una somma totale, ho finito di aggiungere .sum() alla fine, in modo da:

P1Sum= P1Channels.sum(axis=1).sum()