Pandas Groupby zwei Spalten
Dieses Tutorial erklärt, wie wir die Methode DataFrame.groupby()
in Pandas für zwei Spalten verwenden können, um den DataFrame in Gruppen zu unterteilen. Wir können auch viel mehr Informationen aus den erstellten Gruppen gewinnen.
Wir werden in diesem Artikel den untenstehenden DataFrame verwenden.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Jennifer", "Travis", "Bob", "Emma", "Luna", "Anish"],
"Gender": ["Female", "Male", "Male", "Female", "Female", "Male"],
"Employed": ["Yes", "No", "Yes", "No", "Yes", "No"],
"Age": [30, 28, 27, 24, 28, 25],
}
)
print(data)
Ausgabe:
Name Gender Employed Age
0 Jennifer Female Yes 30
1 Travis Male No 28
2 Bob Male Yes 27
3 Emma Female No 24
4 Luna Female Yes 28
5 Anish Male No 25
Pandas Groupby über mehrere Spalten
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Jennifer", "Travis", "Bob", "Emma", "Luna", "Anish"],
"Gender": ["Female", "Male", "Male", "Female", "Female", "Male"],
"Employed": ["Yes", "No", "Yes", "No", "Yes", "No"],
"Age": [30, 28, 27, 24, 28, 25],
}
)
print(data)
print("")
print("Groups in DataFrame:")
groups = data.groupby(["Gender", "Employed"])
for group_key, group_value in groups:
group = groups.get_group(group_key)
print(group)
print("")
Ausgabe:
Name Gender Employed Age
0 Jennifer Female Yes 30
1 Travis Male No 28
2 Bob Male Yes 27
3 Emma Female No 24
4 Luna Female Yes 28
5 Anish Male No 25
Groups in DataFrame:
Name Gender Employed Age
3 Emma Female No 24
Name Gender Employed Age
0 Jennifer Female Yes 30
4 Luna Female Yes 28
Name Gender Employed Age
1 Travis Male No 28
5 Anish Male No 25
Name Gender Employed Age
2 Bob Male Yes 27
Es werden 4 Gruppen aus dem DataFrame erstellt. Alle Zeilen mit dem gleichen Wert der Spalten Gender
und Employed
werden in die gleiche Gruppe eingeordnet.
Anzahl der Zeilen in jeder Gruppe zählen Pandas
Um die Anzahl der Zeilen in jeder erstellten Gruppe mit der Methode DataFrame.groupby()
zu zählen, können wir die Methode size()
verwenden.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Jennifer", "Travis", "Bob", "Emma", "Luna", "Anish"],
"Gender": ["Female", "Male", "Male", "Female", "Female", "Male"],
"Employed": ["Yes", "No", "Yes", "No", "Yes", "No"],
"Age": [30, 28, 27, 24, 28, 25],
}
)
print(data)
print("")
print("Count of Each group:")
grouped_df = data.groupby(["Gender", "Employed"]).size().reset_index(name="Count")
print(grouped_df)
Ausgabe:
Name Gender Employed Age
0 Jennifer Female Yes 30
1 Travis Male No 28
2 Bob Male Yes 27
3 Emma Female No 24
4 Luna Female Yes 28
5 Anish Male No 25
Count of Each group:
Gender Employed Count
0 Female No 1
1 Female Yes 2
2 Male No 2
3 Male Yes 1
Sie zeigt den DataFrame, die aus dem DataFrame erstellten Gruppen und die Anzahl der Einträge in jeder Gruppe an.
Wenn wir den größten Zählwert für jeden Wert in der Spalte Employed
wollen, können wir eine weitere Gruppe aus der oben erstellten Gruppe und den Zählwerten bilden und dann den maximalen Wert der Zählung mit der Methode max()
ermitteln.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Jennifer", "Travis", "Bob", "Emma", "Luna", "Anish"],
"Gender": ["Female", "Male", "Male", "Female", "Female", "Male"],
"Employed": ["Yes", "No", "Yes", "No", "Yes", "No"],
"Age": [30, 28, 27, 24, 28, 25],
}
)
print(data)
print("")
groups = data.groupby(["Gender", "Employed"]).size().groupby(level=1)
print(groups.max())
Ausgabe:
Name Gender Employed Age
0 Jennifer Female Yes 30
1 Travis Male No 28
2 Bob Male Yes 27
3 Emma Female No 24
4 Luna Female Yes 28
5 Anish Male No 25
Employed
No 2
Yes 2
dtype: int64
Es wird die maximale Anzahl der Werte der Spalte Employed
unter den erstellten Gruppen aus den Spalten Gender
und Employed
angezeigt.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Pandas DataFrame Column
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- So erhalten Sie die Summe der Pandas-Spalte
- Wie man die Reihenfolge der Pandas DataFrame-Spalten ändert
- Wie man eine DataFrame-Spalte in eine Zeichenkette in Pandas konvertiert