name              status
    0       alex                pass
    1       alex                pass
    2       alex                unknown
    3       marcus              pass
    4       marcus              fail
    5       anthony             fail
    6       paul                pass
    7       paul                unknown
    8       paul                fail
    9       paul                pass

Si l'un des enregistrements de colonne name a status = pass. J'essaie d'obtenir le décompte de status = pass

            name            count      
    0       alex              2   
    1       marcus            1     
    2       anthony           0       
    3       paul              2
1
Zanthoxylum piperitum 6 oct. 2020 à 14:59

2 réponses

Meilleure réponse

Vous pouvez agréger sum de masque booléen, car les True s traitent comme 1:

df = df['status'].eq('pass').groupby(df['name']).sum().reset_index(name='count')
print (df)
      name  count
0     alex      2
1  anthony      0
2   marcus      1
3     paul      2
2
jezrael 6 oct. 2020 à 12:53

Nous pouvons utiliser pd.crosstab et index sur la colonne d'intérêt:

pd.crosstab(df.name, df.status)['pass'].reset_index()

      name  pass
0     alex     2
1  anthony     0
2   marcus     1
3     paul     2

       
2
yatu 6 oct. 2020 à 12:04