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