Comment créer une nouvelle colonne basée sur une condition dans Pandas



Souvent, vous souhaiterez peut-être créer une nouvelle colonne dans un DataFrame pandas en fonction de certaines conditions.

Ce didacticiel fournit plusieurs exemples de la manière de procéder à l’aide du DataFrame suivant :

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#view DataFrame
df

	rating	points	assists	rebounds
0	90	25	5	11
1	85	20	7	8
2	82	14	7	10
3	88	16	8	6
4	94	27	5	6
5	90	20	7	9
6	76	12	6	6
7	75	15	9	10
8	87	14	9	10
9	86	19	5	7

Exemple 1 : créer une nouvelle colonne avec des valeurs binaires

Le code suivant montre comment créer une nouvelle colonne appelée « Bon » où la valeur est « oui » si les points d’une ligne donnée sont supérieurs à 20 et « non » sinon :

#create new column titled 'Good'
df['Good'] = np.where(df['points']>20, 'yes', 'no')

#view DataFrame 
df

        rating	points	assists	rebounds  Good
0	90	25	5	11	  yes
1	85	20	7	8	  no
2	82	14	7	10	  no
3	88	16	8	6	  no
4	94	27	5	6	  yes
5	90	20	7	9	  no
6	76	12	6	6	  no
7	75	15	9	10	  no
8	87	14	9	10	  no
9	86	19	5	7	  no

Exemple 2 : créer une nouvelle colonne avec plusieurs valeurs

Le code suivant montre comment créer une nouvelle colonne appelée « Bon » où la valeur est :

  • « Oui » si les points ≥ 25
  • « Peut-être » si 15 ≤ points < 25
  • « Non » si les points < 15
#define function for classifying players based on points
def f(row):
    if row['points'] < 15:
        val = 'no'
    elif row['points'] < 25:
        val = 'maybe'
    else:
        val = 'yes'
    return val

#create new column 'Good' using the function above
df['Good'] = df.apply(f, axis=1)

#view DataFrame 
df

        rating	points	assists	rebounds Good
0	90	25	5	11	 yes
1	85	20	7	8	 maybe
2	82	14	7	10	 no
3	88	16	8	6	 maybe
4	94	27	5	6	 yes
5	90	20	7	9	 maybe
6	76	12	6	6	 no
7	75	15	9	10	 maybe
8	87	14	9	10	 no
9	86	19	5	7	 maybe

Exemple 3 : créer une nouvelle colonne basée sur une comparaison avec une colonne existante

Le code suivant montre comment créer une nouvelle colonne appelée « assist_more » où la valeur est :

  • « Oui » si passes décisives > rebonds.
  • ‘Non’ sinon.
#create new column titled 'assist_more'
df['assist_more'] = np.where(df['assists']>df['rebounds'], 'yes', 'no')

#view DataFrame 
df

        rating	points	assists	rebounds assist_more
0	90	25	5	11	 no
1	85	20	7	8	 no
2	82	14	7	10	 no
3	88	16	8	6	 yes
4	94	27	5	6	 no
5	90	20	7	9	 no
6	76	12	6	6	 no
7	75	15	9	10	 no
8	87	14	9	10	 no
9	86	19	5	7	 no

Vous pouvez trouver plus de didacticiels Python ici .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *