Pandas kumulierte Anzahl
Habe ich einen Daten-frame, wie dies:
0 04:10 obj1
1 04:10 obj1
2 04:11 obj1
3 04:12 obj2
4 04:12 obj2
5 04:12 obj1
6 04:13 obj2
Wollte eine kumulierte Anzahl für alle Objekte dieser:
idx time object obj1_count obj2_count
0 04:10 obj1 1 0
1 04:10 obj1 2 0
2 04:11 obj1 3 0
3 04:12 obj2 3 1
4 04:12 obj2 3 2
5 04:12 obj1 4 2
6 04:13 obj2 4 3
Versucht das Spiel mit cumsum aber nicht sicher, ob das der richtige Weg ist. Irgendwelche Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine spezielle Funktion für solche Bedienung:
cumcount
Können Sie vergleichen Sie einfach die Spalte mit dem Wert des Interesses, und rufen Sie
cumsum
:Hier der Vergleich erzeugt ein boolean-Serie:
beim Aufruf
cumsum
auf die oberhalb derTrue
Werte sind Umgerechnet auf1
undFalse
zu0
und summiert sich kumulativKönnen Sie generalisieren diesen Prozess, indem immer die
cumsum
vonpd.get_dummies
. Diese Arbeit sollte für eine beliebige Anzahl Objekte, die Sie zählen möchten, ohne zu spezifizieren, einzeln:Die resultierende Ausgabe:
Kann man auch weglassen
rename
Schritt, wenn es ist akzeptabel, verwenden, zählen als Präfix anstelle von einem suffix, d.h.'count_obj1'
statt'obj1_count'
. Verwenden Sie einfach dieprefix
parameter derpd.get_dummies
:Hier ist eine Möglichkeit, mithilfe von numpy