Ich möchte die Anzahl der Vorkommen eines bestimmten Werts (String) in einer Spalte zählen und in einer anderen Spalte kumulativ aufschreiben.
Zählen Sie hier beispielsweise die kumulierte Anzahl von Y
Werten:
col_1 new_col
Y 1
Y 2
N 2
Y 3
N 3
Ich habe diesen Code geschrieben, aber er gibt mir die endgültige Zahl anstelle der kumulativen Häufigkeiten.
df['new_col'] = 0
df['new_col'] = df.loc[df.col_1 == 'Y'].count()
Um beide Werte kumulativ zu zählen, können Sie Folgendes verwenden:
df['new_col'] = (df
.groupby('col_1')
.cumcount().add(1)
.cummax()
)
Wenn Sie sich auf 'Y' konzentrieren möchten:
df['new_col'] = (df
.groupby('col_1')
.cumcount().add(1)
.where(df['col_1'].eq('Y'))
.ffill()
.fillna(0, downcast='infer')
)
Ausgabe:
col_1 new_col
0 Y 1
1 Y 2
2 N 2
3 Y 3
4 N 3
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen