2015-04-22 13 views
5

Ho un dataframe 'gt' in questo modo:Python PANDAS: Aggiungere una colonna alla mia dataframe che conta una variabile

org  group 
org1  1 
org2  1 
org3  2 
org4  3 
org5  3 
org6  3 

e vorrei aggiungere la colonna 'count' a gt dataframe ai conteggi membro numero dei gruppi, i risultati attesi come questo:

org  group count 
org1  1  2 
org2  1  2 
org3  2  1 
org4  3  3 
org5  3  3 
org6  3  3 

so come si fa per un elemento del gruppo, ma non sanno come fare il conteggio ripetuta per tutti gli elementi del gruppo, ecco il codice Ho usato:

gtcounts = gt.groupby('group').count() 

Qualcuno può aiutare?

risposta

13

chiamata transform questo restituirà un serie allineata con la df originale:

In [223]: 

df['count'] = df.groupby('group')['group'].transform('count') 
df 
Out[223]: 
    org group count 
0 org1  1  2 
1 org2  1  2 
2 org3  2  1 
3 org4  3  3 
4 org5  3  3 
5 org6  3  3 
+0

ho provato e sto ricevendo questo errore: ValueError: Numero errato di elementi passati 2, il posizionamento implica 1 – UserYmY

+0

Beh io ho notato che la risposta corretta dovrebbe essere: df ['count'] = df.groupby ('group') ['group']. transform ('count'). Grazie per il tuo aiuto – UserYmY

+0

Che versione panda stai usando? Il mio è '0.16.0' ma sì, mi aspetterei che se selezioni esplicitamente una colonna, funzionerà sempre – EdChum