Dividere Pandas DataFrame
- Dividi DataFrame utilizzando l’indicizzazione delle righe
-
Split DataFrame utilizzando il metodo
groupby() -
Split DataFrame usando il metodo
sample()
Questo tutorial spiega come possiamo dividere un DataFrame in più DataFrame più piccoli usando l’indicizzazione delle righe, il metodo DataFrame.groupby() e il metodo DataFrame.sample().
Useremo il DataFrame apprix_df di seguito per spiegare come possiamo dividere un DataFrame in più DataFrame più piccoli.
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")
Produzione:
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
Dividi DataFrame utilizzando l’indicizzazione delle righe
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")
Produzione:
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
Divide il DataFrame apprix_df in due parti utilizzando l’indicizzazione delle righe. La prima parte contiene le prime due righe del DataFrame apprix_df, mentre la seconda parte contiene le ultime tre righe.
Possiamo specificare le righe da includere in ogni divisione nella proprietà iloc. [:2,:] rappresenta selezionare le righe fino alla riga con indice 2 esclusivo (la riga con indice 2 non è inclusa) e tutte le colonne dal DataFrame. Quindi, apprix_df.iloc[:2,:] seleziona le prime due righe dal DataFrame apprix_df con indice 0 e 1.
Split DataFrame utilizzando il metodo groupby()
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")
Produzione:
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
Divide il DataFrame apprix_df in tre parti in base al valore della colonna Qualification. Le righe con lo stesso valore della colonna Qualification verranno inserite nello stesso gruppo.
La funzione groupby() formerà gruppi basati sul valore della colonna Qualification. Quindi estraiamo le righe raggruppate con il metodo groupby() utilizzando il metodo get_group().
Split DataFrame usando il metodo sample()
Possiamo formare un DataFrame campionando le righe in modo casuale da un DataFrame usando il metodo sample(). Possiamo impostare il rapporto tra le righe da campionare dal DataFrame padre.
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)
Produzione:
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
Campiona casualmente il 40% delle righe dal DataFrame apprix_df e quindi visualizza il DataFrame formato dalle righe campionate. random_state è impostato per garantire che otteniamo gli stessi campioni casuali durante il campionamento ogni volta.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticolo correlato - Pandas DataFrame
- Come ottenere le intestazioni delle colonne DataFrame Pandas come lista
- Come cancellare la colonna DataFrame Pandas DataFrame
- Come convertire la colonna DataFrame in data e ora in pandas
- Converti un Float in un Integer in Pandas DataFrame
- Ordina Pandas DataFrame in base ai valori di una colonna
- Ottieni l'aggregato di Pandas Group-By e Sum
