Prozentsatz des Gesamtumsatzes mit Groupby in Pandas
Die Berechnung des Prozentsatzes des Umsatzes, den jedes Büro innerhalb eines Staates beisteuert, erfordert einen differenzierten Ansatz in Pandas. Durch einfaches Gruppieren nach „Bundesstaat“ und „Büro-ID“ erhalten Sie zwar die Summe der Verkäufe für jedes Büro, aber nicht den prozentualen Beitrag innerhalb des Bundesstaates.
Um dies zu erreichen, müssen Sie zunächst eine Gruppierung nach erstellen Objekt basierend auf „state“ und „office_id“. Dadurch erhalten Sie einen Datenrahmen mit der Verkaufsspalte, die die Gesamtverkäufe für jede Büro-Bundesstaat-Kombination enthält:
state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
Um den Prozentsatz zu berechnen, können Sie die Verkäufe jedes Büros durch die Gesamtverkäufe für diesen Bundesstaat dividieren. Um jedoch auf die Gesamtverkäufe für jeden Bundesstaat innerhalb der Groupby zuzugreifen, müssen Sie ein zweites Groupby-Objekt basierend auf „state“ erstellen:
state_total = df.groupby('state').agg({'sales': 'sum'})
Mit diesem Objekt können Sie die Groupby „state_office“ um erweitern eine neue Spalte, die den Prozentsatz der Verkäufe für jede Büro-Staats-Kombination enthält:
state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(state_total.loc[x.name]))
Beachten Sie, dass sich der Parameter „level=0“ in „groupby“ auf die oberste Ebene der bezieht Mehrstufiger Index, der aus der ursprünglichen Gruppe nach „Bundesstaat“ und „Büro-ID“ gebildet wird.
Dieser Ansatz stellt sicher, dass der Umsatzprozentsatz jedes Büros anhand der Gesamtverkäufe innerhalb des jeweiligen Bundesstaates berechnet wird.
Das obige ist der detaillierte Inhalt vonWie berechnet man mit Pandas den Prozentsatz des Umsatzes pro Büro in jedem Bundesstaat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!