Pandas DataFrame aufteilen
- DataFrame aufteilen mit Hilfe der Zeilenindizierung
-
DataFrame mit der Methode
groupby()
aufteilen -
DataFrame mit der Methode
sample()
aufteilen
Dieses Tutorial erklärt, wie wir einen DataFrame in mehrere kleinere DataFrames aufteilen können, indem wir die Zeilenindexierung, die Methode DataFrame.groupby()
und die Methode DataFrame.sample()
verwenden.
Im Folgenden wird anhand des DataFrames apprix_df
erklärt, wie ein DataFrame in mehrere kleinere DataFrames aufgeteilt werden kann.
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MCA", "PhD", "BE"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
Ausgabe:
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MCA
3 Samir Consultant PhD
4 Binam Engineer BE
DataFrame aufteilen mit Hilfe der Zeilenindizierung
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MCA", "PhD", "BE"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
apprix_1 = apprix_df.iloc[:2, :]
apprix_2 = apprix_df.iloc[2:, :]
print("The DataFrames formed by splitting of Apprix Team DataFrame are: ", "\n")
print(apprix_1, "\n")
print(apprix_2, "\n")
Ausgabe:
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MCA
3 Samir Consultant PhD
4 Binam Engineer BE
The DataFrames formed by splitting the Apprix Team DataFrame are:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
Name Post Qualification
2 Manish System Admin MCA
3 Samir Consultant PhD
4 Binam Engineer BE
Der DataFrame apprix_df
wird unter Verwendung der Zeilenindizierung in zwei Teile aufgeteilt. Der erste Teil enthält die ersten beiden Zeilen des DataFrames apprix_df
, während der zweite Teil die letzten drei Zeilen enthält.
Wir können die Zeilen, die in jedem Split enthalten sein sollen, in der Eigenschaft iloc
angeben. [:2,:]
steht für die Auswahl der Zeilen bis zur Zeile mit dem Index 2
exklusiv (die Zeile mit dem Index 2
ist nicht enthalten) und alle Spalten aus dem DataFrame. Daher wählt apprix_df.iloc[:2,:]
die ersten beiden Zeilen aus dem DataFrame apprix_df
mit dem Index 0
und 1
aus.
DataFrame mit der Methode groupby()
aufteilen
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MS", "PhD", "MS"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
groups = apprix_df.groupby(apprix_df.Qualification)
ms_df = groups.get_group("MS")
mba_df = groups.get_group("MBA")
phd_df = groups.get_group("PhD")
print("Group with Qualification MS:")
print(ms_df, "\n")
print("Group with Qualification MBA:")
print(mba_df, "\n")
print("Group with Qualification PhD:")
print(phd_df, "\n")
Ausgabe:
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MS
3 Samir Consultant PhD
4 Binam Engineer MS
Group with Qualification MS:
Name Post Qualification
1 Rabindra CTO MS
2 Manish System Admin MS
4 Binam Engineer MS
Group with Qualification MBA:
Name Post Qualification
0 Anish CEO MBA
Group with Qualification PhD:
Name Post Qualification
3 Samir Consultant PhD
Der DataFrame apprix_df
wird in drei Teile geteilt, basierend auf dem Wert der Spalte Qualification
. Die Zeilen mit dem gleichen Wert der Spalte Qualification
werden in die gleiche Gruppe eingeordnet.
Die Funktion groupby()
bildet Gruppen basierend auf dem Wert der Spalte Qualification
. Wir extrahieren dann die mit der Methode groupby()
gruppierten Zeilen mit der Methode get_group()
.
DataFrame mit der Methode sample()
aufteilen
Wir können einen DataFrame bilden, indem wir mit der Methode sample()
zufällig Zeilen aus einem DataFrame ziehen. Wir können das Verhältnis der Zeilen festlegen, die aus dem übergeordneten DataFrame abgetastet werden sollen.
import pandas as pd
apprix_df = pd.DataFrame(
{
"Name": ["Anish", "Rabindra", "Manish", "Samir", "Binam"],
"Post": ["CEO", "CTO", "System Admin", "Consultant", "Engineer"],
"Qualification": ["MBA", "MS", "MS", "PhD", "MS"],
}
)
print("Apprix Team DataFrame:")
print(apprix_df, "\n")
random_df = apprix_df.sample(frac=0.4, random_state=60)
print("Random split from the Apprix Team DataFrame:")
print(random_df)
Ausgabe:
Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
1 Rabindra CTO MS
2 Manish System Admin MS
3 Samir Consultant PhD
4 Binam Engineer MS
Random split from the Apprix Team DataFrame:
Name Post Qualification
0 Anish CEO MBA
4 Binam Engineer MS
Es werden 40% der Zeilen aus dem DataFrame apprix_df
zufällig abgetastet und dann der aus den abgetasteten Zeilen gebildete DataFrame angezeigt. Der random_state
wird gesetzt, um sicherzustellen, dass wir jedes Mal die gleichen Zufallsstichproben beim Sampling erhalten.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum