È piuttosto comune utilizzare l'indicizzazione booleana per questo tipo di attività. Con questo metodo, si scopre dove la colonna a
è uguale a 1
e quindi somma le righe corrispondenti della colonna b
. È possibile utilizzare loc
per gestire l'indicizzazione:
>>> df.loc[df['a'] == 1, 'b'].sum()
15
L'approccio alternativo consiste nell'utilizzare groupby
dividere il dataframe in parti in base al valore della colonna a
. È quindi possibile sommare ogni parte e tirare fuori il valore che l'1 del aggiunti fino a:
>>> df.groupby('a')['b'].sum()[1]
15
L'approccio groupby
è molto più lento rispetto all'utilizzo di indicizzazione booleana, ma è utile se si desidera controllare le somme per altri valori nella colonna a
.
fonte
2015-01-30 12:53:51
utilizzare il gruppo in base alla funzione nei panda per eseguire questa attività –