Pandas : Comment diviser un DataFrame par valeur de colonne
Vous pouvez utiliser la syntaxe de base suivante pour diviser un DataFrame pandas par valeur de colonne :
#define value to split on x = 20 #define df1 as DataFrame where 'column_name' is >= 20 df1 = df[df['column_name'] >= x] #define df2 as DataFrame where 'column_name' is < 20 df2 = df[df['column_name'] < x]
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : diviser le DataFrame Pandas par valeur de colonne
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [22, 24, 19, 18, 14, 29, 31, 16], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print(df) team points rebounds 0 A 22 11 1 B 24 8 2 C 19 10 3 D 18 6 4 E 14 6 5 F 29 5 6 G 31 9 7 H 16 12
Nous pouvons utiliser le code suivant pour diviser le DataFrame en deux DataFrames où le premier contient les lignes où les « points » sont supérieurs ou égaux à 20 et le second contient les lignes où les « points » sont inférieurs à 20 :
#define value to split on x = 20 #define df1 as DataFrame where 'points' is >= 20 df1 = df[df['points'] >= x] print(df1) team points rebounds 0 A 22 11 1 B 24 8 5 F 29 5 6 G 31 9 #define df2 as DataFrame where 'points' is < 20 df2 = df[df['points'] < x] print(df2) team points rebounds 2 C 19 10 3 D 18 6 4 E 14 6 7 H 16 12
Notez que nous pouvons également utiliser la fonction reset_index() pour réinitialiser les valeurs d’index pour chaque DataFrame résultant :
#define value to split on x = 20 #define df1 as DataFrame where 'points' is >= 20 df1 = df[df['points'] >= x].reset_index(drop=True) print(df1) team points rebounds 0 A 22 11 1 B 24 8 2 F 29 5 3 G 31 9 #define df2 as DataFrame where 'points' is < 20 df2 = df[df['points'] < x].reset_index(drop=True) print(df2) team points rebounds 0 C 19 10 1 D 18 6 2 E 14 6 3 H 16 12
Notez que l’index de chaque DataFrame résultant commence désormais à 0.
Ressources additionnelles
Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes en Python :
Comment réparer KeyError dans Pandas
Comment réparer : ValueError : impossible de convertir le float NaN en entier
Comment réparer : ValueError : les opérandes n’ont pas pu être diffusés avec les formes