Ich habe einen Pandas DataFrame.Summe einer Spalte in Pandas DataFrame
LeafId pidx pidy count
1 x y 10
1 x y 20
1 x z 30
3 b q 10
1 x y 20
Wir können sehen, dass es mehrere Reihen von pidx = x and pidy = y
Ich möchte die Zählspalte zusammenzufassen und Datenrahmen df2 erhalten wie:
LeafId pidx pidy count
1 x y 50
1 x z 30
3 b q 10
Ich kenne einen Weg, es zu tun:
df2 = df.groupby(['pidx','pidy']).agg({'LeafID':'first',count':'sum'}).reset_index()
Aber ich möchte die effizienteste Art, es für einen riesigen DataFrame zu tun (Mühle Ionen von Aufzeichnungen), die die geringste Zeit benötigen.
Gibt es einen besseren Weg, dies zu tun?
Auch statt LeafID
innerhalb .agg()
setzen, kann ich Folgendes tun?
df2 = df.groupby(['LeafID','pidx','pidy']).agg({count':'sum'}).reset_index()
Sortiere nach pidx und pidy, finde Indizes, wo sich entweder die Änderungen ändern, und wende dann die Summe auf die Bereiche an. – rafaelvalle