Fractionner Pandas DataFrame
- Fractionner le DataFrame en utilisant l’indexation des lignes
-
Diviser le DataFrame en utilisant la méthode
groupby()
-
Fractionnement de DataFrame en utilisant la méthode
sample()
Ce tutoriel explique comment nous pouvons diviser un DataFrame en plusieurs DataFrames plus petits en utilisant l’indexation des lignes, la méthode DataFrame.groupby()
et la méthode DataFrame.sample()
.
Nous utiliserons le DataFrame apprix_df
ci-dessous pour expliquer comment nous pouvons diviser un DataFrame en plusieurs DataFrames plus petits.
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")
Production :
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
Fractionner le DataFrame en utilisant l’indexation des lignes
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")
Production :
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
Il divise le DataFrame apprix_df
en deux parties en utilisant l’indexation des lignes. La première partie contient les deux premières lignes du DataFrame apprix_df
, tandis que la deuxième partie contient les trois dernières lignes.
Nous pouvons spécifier les lignes à inclure dans chaque partie dans la propriété iloc
. [:2, :]
représente la sélection des lignes jusqu’à la ligne avec l’index 2
exclusif (la ligne avec l’index 2
n’est pas incluse) et toutes les colonnes du DataFrame. Par conséquent, apprix_df.iloc[:2, :]
sélectionne les deux premières lignes de la DataFrame apprix_df
avec l’index 0
et 1
.
Diviser le DataFrame en utilisant la méthode 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")
Production :
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
Il divise le DataFrame apprix_df
en trois parties basées sur la valeur de la colonne Qualification
. Les lignes ayant la même valeur de la colonne Qualification
seront placées dans le même groupe.
La fonction groupby()
formera des groupes basés sur la valeur de la colonne Qualification
. Nous extrayons ensuite les lignes groupées par la méthode groupby()
en utilisant la méthode get_group()
.
Fractionnement de DataFrame en utilisant la méthode sample()
Nous pouvons former un DataFrame en échantillonnant des lignes de façon aléatoire à partir d’un DataFrame en utilisant la méthode sample()
. Nous pouvons définir le ratio des lignes à échantillonner à partir de la DataFrame parente.
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)
Production :
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
Il échantillonne aléatoirement 40% des lignes de la DataFrame apprix_df
et affiche ensuite la DataFrame formée à partir des lignes échantillonnées. L’état random_state
est défini pour s’assurer que nous obtenons les mêmes échantillons aléatoires à chaque fois.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme