ho un dataframe panda come segue:striature trovando in panda dataframe
time winner loser stat
1 A B 0
2 C B 0
3 D B 1
4 E B 0
5 F A 0
6 G A 0
7 H A 0
8 I A 1
ogni riga è un risultato della partita. la prima colonna è l'ora della partita, la seconda e la terza colonna contengono il vincitore/perdente e la quarta colonna è una statistica della partita.
Desidero rilevare strisce di zeri per questa statistica per perdente.
Il risultato atteso dovrebbe essere simile a questo:
time winner loser stat streak
1 A B 0 1
2 C B 0 2
3 D B 1 0
4 E B 0 1
5 F A 0 1
6 G A 0 2
7 H A 0 3
8 I A 1 0
In pseudocodice l'algoritmo dovrebbe funzionare in questo modo:
.groupby
loser
colonna.- poi iterare su ciascuna fila di ciascun gruppo
loser
- in ciascuna riga, la colonna
stat
: se contiene0
, quindi incrementare il valorestreak
dalla riga precedente0
. se non è0
, quindi avviare un nuovostreak
, ovvero inserire0
nella colonnastreak
.
Quindi il .groupby
è chiaro. Ma poi avrei bisogno di una sorta di .apply
dove posso guardare la riga precedente? questo è dove sono bloccato.
Non è esattamente una risposta, ma pensa che la soluzione potrebbe essere trovata combinando [questo] (http://stackoverflow.com/questions/17266129/python-pandas-conditional-sums) e [questo] (http://stackoverflow.com/questions/35314936/summing-values-in-read-csv-python) –