Code: Select all
Driver_ID Date Place
1 2025-02-13 1
1 2024-12-31 1
1 2024-11-03 2
1 2023-01-01 1
2 2025-01-13 5
2 2024-12-02 1
2 2024-11-12 2
2 2023-11-12 1
2 2023-05-12 1
Driver_ID Date Place Total_wins
1 2025-02-13 1 2
1 2024-12-31 1 1
1 2024-11-03 2 1
1 2023-01-01 1 0
2 2025-01-13 5 3
2 2024-12-02 1 2
2 2024-11-12 2 2
2 2023-11-12 1 1
2 2023-05-12 1 0
< /code>
Und hier ist mein Code: < /p>
win = (df.assign(Date=Date)
.sort_values(['Driver_ID','Date'], ascending=[True,True])
['Place'].eq(1))
df['Total_wins']=(win.groupby(df['Driver_ID'], group_keys=False).apply(lambda g: g.shift(1, fill_value=0).cumsum()))
< /code>
Also funktioniert der Code (meistens) in Ordnung. Ich habe meistens, weil ich das Ergebnis manuell überprüft habe und die meisten Ergebnisse korrekt sind, aber für ein paar Zeilen liefert es falsche Ergebnisse wie < /p>
Driver_ID Date Place Total_wins
1 2025-02-13 1 2
1 2024-12-31 1 4
1 2024-11-03 2 1
1 2023-01-01 1 0
< /code>
Ich habe versucht, es zu debuggen, aber ich konnte nichts falsch finden. Gibt es einen subtilen Fehler in meinem Code, der den Fehler verursacht hat? Oder was ist der mögliche Grund dafür? Mein ursprünglicher Datenrahmen ist riesig (~ 150000 Zeilen)
Vielen Dank im Voraus