Wie erhält man das Aggregat der Pandas gruppenweise und sum
-
Kumulative Summe mit
groupby
-
pivot()
, um die Daten in einer schönen Tabelle neu anzuordnen -
Anwenden von
Funktion
aufgroupby
in Pandas -
agg()
, um die Gesamtsumme der Spalte zu erhalten
Wir werden demonstrieren, wie man das Aggregat der Pandas “gruppenweise” und “summa summarum” erhält. Wir werden uns auch die pivot
-Funktionalität ansehen, um die Daten in einer schönen Tabelle anzuordnen, und wie wir unsere benutzerdefinierte Funktion definieren und sie auf den DataFrame
anwenden können. Wir werden auch die Gesamtsumme erhalten, indem wir agg()
verwenden.
Kumulative Summe mit groupby
Wir können die kumulative Summe erhalten, indem wir die “gruppenweise” Methode verwenden. Betrachten Sie den folgenden DataFrame mit Datum, Fruchtname und Verkauf an diesem Datum:
import pandas as pd
df = pd.DataFrame(
{
"Date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
"Fruit": [
"Apple",
"Apple",
"Banana",
"Banana",
],
"Sale": [34, 12, 22, 27],
}
)
Wenn wir die kumulative Summe des Verkaufs pro Frucht und für jedes Datum berechnen wollen, können wir das tun:
import pandas as pd
df = pd.DataFrame(
{
"Date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
"Fruit": [
"Apple",
"Apple",
"Banana",
"Banana",
],
"Sale": [34, 12, 22, 27],
}
)
print(df.groupby(by=["Fruit", "Date"]).sum().groupby(level=[0]).cumsum())
Ausgabe:
Fruit Date Sale
Apple 08/09/2018 34
10/09/2018 46
Banana 08/09/2018 22
10/09/2018 49
pivot()
, um die Daten in einer schönen Tabelle neu anzuordnen
pivot()
Methode könnte Zeilen- und Spaltenattribute der Tabelle setzen. Lassen Sie uns den obigen Code ändern und die pivot()
Methode anwenden, um die Daten in einer schönen Tabelle neu anzuordnen:
import pandas as pd
df = pd.DataFrame(
{
"Date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
"Fruit": [
"Apple",
"Apple",
"Banana",
"Banana",
],
"Sale": [34, 12, 22, 27],
}
)
print(
df.groupby(["Fruit", "Date"], as_index=False).sum().pivot("Fruit", "Date").fillna(0)
)
Ausgabe:
Sale
Date 08/09/2018 10/09/2018
Fruit
Apple 34 12
Banana 22 27
Anwenden von Funktion
auf groupby
in Pandas
Wir werden eine einfache Methode erstellen, um die Anzahl der Werte in series
oder 1d-Arrays
zu ermitteln und Gruppenweise
verwenden, um die Gesamtzahl der einzelnen Werte zu ermitteln:
from pandas import *
d = {"series": Series(["1", "2", "1", "1", "4", "4", "5"])}
df = DataFrame(d)
def get_count(values):
return len(values)
grouped_count = df.groupby("series").series.agg(get_count)
print(grouped_count)
Nachdem wir den Code ausgeführt haben, erhalten wir die folgende Ausgabe, die das Vorkommen jedes Wertes in der Serie angibt.
Ausgabe:
series
1 3
2 1
4 2
5 1
Name: series, dtype: int64
agg()
, um die Gesamtsumme der Spalte zu erhalten
Wir können agg()
benutzen, um eine Summenoperation auf eine Spalte anzuwenden. Betrachten Sie den folgenden Code:
import pandas as pd
df = pd.DataFrame(
{
"Date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
"Fruit": [
"Apple",
"Apple",
"Banana",
"Banana",
],
"Sale": [34, 12, 22, 27],
}
)
print(df.groupby(["Fruit"])["Sale"].agg("sum"))
Ausgabe:
Fruit
Apple 46
Banana 49
Name: Sale, dtype: int64