Ajouter de nouvelles colonnes à un dataframe - Pandas pour le Machine Learning
Table of Contents
- Introduction
- Three Ways to Add Columns to Data Frames with Pandas
- Method 1: Using a python list
- Method 2: Using the insert function
- Method 3: Using the assign function
- Method 1: Using a python list
- Adding a column with a python list
- Steps to add a column
- Example with sample data
- Adding default values to a column
- Steps to add default values
- Example with sample data
- Adding null values to a column
- Steps to add null values
- Example with sample data
- Method 2: Using the insert function
- Adding a column at a specific position
- Steps to add a column
- Example with sample data
- Allowing or disallowing duplicates
- Steps to allow or disallow duplicates
- Example with sample data
- Method 3: Using the assign function
- Creating a new data frame with an added column
- Steps to create a new data frame
- Example with sample data
- Conclusion
- FAQ
- Can I add multiple columns at once using these methods?
- Can I add a column with different data types?
- Is it possible to add columns to a data frame with missing values?
Introduction
Dans cette vidéo, je vais vous montrer trois façons d'ajouter des colonnes à vos data frames avec Pandas. Les data frames sont des structures de données très utilisées dans l'analyse de données en Python, et il est souvent nécessaire d'ajouter de nouvelles colonnes pour effectuer des calculs ou manipuler les données.
Three Ways to Add Columns to Data Frames with Pandas
Method 1: Using a python list
La première méthode consiste à utiliser une liste Python pour ajouter une colonne à votre data frame. C'est la méthode la plus simple, surtout si vous avez un petit ensemble de données. Vous pouvez simplement créer une liste avec les valeurs que vous souhaitez ajouter, puis assigner cette liste comme une nouvelle colonne à votre data frame.
Pros
- Facile à mettre en œuvre
- Convient aux petits ensembles de données
Cons
- Difficile à utiliser pour de grands ensembles de données
- Les valeurs doivent correspondre au nombre de lignes dans le data frame
Method 2: Using the insert function
La deuxième méthode consiste à utiliser la fonction "insert" de Pandas pour ajouter une colonne à une position spécifique dans votre data frame. Cette méthode est utile lorsque vous voulez ajouter une colonne à un endroit précis plutôt qu'à la fin.
Pros
- Permet de spécifier une position précise pour la nouvelle colonne
- Utile pour l'insertion de colonnes dans un ordre spécifique
Cons
- Peut être plus complexe à mettre en œuvre que la méthode précédente
- Possibilité de créer des doublons si les valeurs sont déjà présentes dans le data frame
Method 3: Using the assign function
La troisième méthode consiste à utiliser la fonction "assign" de Pandas pour créer un nouveau data frame avec une colonne ajoutée. Cela vous permet de conserver votre data frame d'origine tout en créant une nouvelle version avec une colonne supplémentaire.
Pros
- Crée un nouveau data frame tout en conservant l'original
- Permet de travailler avec une nouvelle version des données sans modifier les données d'origine
Cons
- Peut entraîner une utilisation plus importante de la mémoire si de nombreux nouveaux data frames sont créés
Method 1: Using a python list
Adding a column with a python list
Pour ajouter une colonne à votre data frame à l'aide d'une liste Python, vous devez suivre quelques étapes simples. Voici comment procéder :
- Créez une liste avec les valeurs que vous souhaitez ajouter dans la colonne.
- Assignez cette liste comme une nouvelle colonne à votre data frame à l'aide de la fonction "assign".
Par exemple, supposons que vous ayez un data frame appelé "my_df" avec 5 enregistrements, et que vous souhaitiez ajouter une colonne appelée "gender" avec les valeurs "male" et "female". Vous pouvez utiliser le code suivant :
gender = ["male", "female", "male", "male", "female"]
my_df = my_df.assign(gender=gender)
Example with sample data
import pandas as pd
# Create a sample data frame
data = {'name': ['John', 'Jane', 'Mike', 'Emily', 'David'],
'age': [25, 30, 35, 40, 45]}
my_df = pd.DataFrame(data)
# Add a new column called "gender"
gender = ["male", "female", "male", "male", "female"]
my_df = my_df.assign(gender=gender)
print(my_df)
Résultat :
name age gender
0 John 25 male
1 Jane 30 female
2 Mike 35 male
3 Emily 40 male
4 David 45 female
Adding default values to a column
Si vous ne connaissez pas les valeurs à ajouter dans la colonne, ou si vous voulez ajouter une valeur par défaut à toutes les lignes, vous pouvez le faire en utilisant la fonction "assign" avec une valeur unique. Par exemple, vous pouvez ajouter une colonne booléenne appelée "live/dead" avec la valeur par défaut "True" pour toutes les lignes :
is_alive = True
my_df = my_df.assign(is_alive=is_alive)
Example with sample data
import pandas as pd
# Create a sample data frame
data = {'name': ['John', 'Jane', 'Mike', 'Emily', 'David'],
'age': [25, 30, 35, 40, 45]}
my_df = pd.DataFrame(data)
# Add a new column called "is_alive" with default value "True"
is_alive = True
my_df = my_df.assign(is_alive=is_alive)
print(my_df)
Résultat :
name age is_alive
0 John 25 True
1 Jane 30 True
2 Mike 35 True
3 Emily 40 True
4 David 45 True
Adding null values to a column
Si vous ne connaissez pas les valeurs à ajouter dans la colonne, mais que vous souhaitez quand même créer la colonne avec des valeurs nulles, vous pouvez utiliser la fonction "assign" avec la constante "np.nan" de la bibliothèque NumPy. Par exemple, vous pouvez ajouter une colonne appelée "show_dog" avec des valeurs nulles pour toutes les lignes :
import numpy as np
show_dog = np.nan
my_df = my_df.assign(show_dog=show_dog)
Example with sample data
import pandas as pd
import numpy as np
# Create a sample data frame
data = {'name': ['John', 'Jane', 'Mike', 'Emily', 'David'],
'age': [25, 30, 35, 40, 45]}
my_df = pd.DataFrame(data)
# Add a new column called "show_dog" with null values
show_dog = np.nan
my_df = my_df.assign(show_dog=show_dog)
print(my_df)
Résultat :
name age show_dog
0 John 25 NaN
1 Jane 30 NaN
2 Mike 35 NaN
3 Emily 40 NaN
4 David 45 NaN
Method 2: Using the insert function
Adding a column at a specific position
Pour ajouter une colonne à une position spécifique dans votre data frame, vous pouvez utiliser la fonction "insert" de Pandas. Cela vous permet de spécifier l'index de la colonne où vous voulez insérer la nouvelle colonne.
Voici comment procéder :
- Utilisez la fonction "insert" de Pandas sur votre data frame.
- Passez l'indice de la colonne où vous voulez insérer la nouvelle colonne.
- Passez le nom de la colonne et les valeurs que vous souhaitez ajouter.
Par exemple, supposons que vous ayez un data frame appelé "my_df" avec les colonnes "breed" et "color", et que vous vouliez ajouter une colonne appelée "adopted" entre ces deux colonnes. Voici comment vous pouvez le faire :
my_df.insert(1, "adopted", [True, False, True, True, False])
Example with sample data
import pandas as pd
# Create a sample data frame
data = {'breed': ['Labrador', 'German Shepherd', 'Poodle', 'Bulldog', 'Boxer'],
'color': ['Black', 'Tan', 'White', 'Brown', 'Brindle']}
my_df = pd.DataFrame(data)
# Add a new column called "adopted" at position 1
my_df.insert(1, "adopted", [True, False, True, True, False])
print(my_df)
Résultat :
breed adopted color
0 Labrador True Black
1 German Shepherd False Tan
2 Poodle True White
3 Bulldog True Brown
4 Boxer False Brindle
Allowing or disallowing duplicates
Lors de l'ajout d'une colonne avec la fonction "insert", vous pouvez spécifier si vous autorisez ou non les doublons dans cette colonne. Par défaut, Pandas autorise les doublons. Cela signifie que si vous ajoutez une colonne avec des valeurs déjà présentes dans le data frame, les doublons seront acceptés.
Si vous ne voulez pas autoriser les doublons, vous pouvez passer l'argument "allow_duplicates=False" lors de l'utilisation de la fonction "insert". Cela forcera Pandas à vérifier s'il y a des doublons et à lever une exception si nécessaire.
my_df.insert(2, "breed", ["Labrador", "German Shepherd", "Poodle", "Bulldog", "Boxer"], allow_duplicates=False)
Example with sample data
import pandas as pd
# Create a sample data frame
data = {'breed': ['Labrador', 'German Shepherd', 'Poodle', 'Bulldog', 'Boxer'],
'color': ['Black', 'Tan', 'White', 'Brown', 'Brindle']}
my_df = pd.DataFrame(data)
# Add a new column called "breed" at position 2, disallowing duplicates
my_df.insert(2, "breed", ["Labrador", "German Shepherd", "Poodle", "Bulldog", "Boxer"], allow_duplicates=False)
print(my_df)
Résultat (avec une exception) :
...
ValueError: cannot reindex from a duplicate axis
Method 3: Using the assign function
Creating a new data frame with an added column
La dernière méthode que je vais vous montrer pour ajouter une colonne consiste à utiliser la fonction "assign" de Pandas pour créer un nouveau data frame avec une nouvelle colonne ajoutée. Cela vous permet de travailler avec une nouvelle version des données sans modifier l'original.
Voici comment procéder :
- Créez un nouveau data frame en utilisant la fonction "assign" de Pandas.
- Passez le nom de la colonne et les valeurs que vous souhaitez ajouter à cette colonne.
Par exemple, si vous avez un data frame appelé "my_df" et que vous voulez ajouter une colonne appelée "horse" avec la valeur "False" pour toutes les lignes, vous pouvez utiliser le code suivant :
my_df2 = my_df.assign(horse=False)
Example with sample data
import pandas as pd
# Create a sample data frame
data = {'name': ['John', 'Jane', 'Mike', 'Emily', 'David'],
'age': [25, 30, 35, 40, 45]}
my_df = pd.DataFrame(data)
# Create a new data frame with an added column
my_df2 = my_df.assign(horse=False)
print(my_df2)
Résultat :
name age horse
0 John 25 False
1 Jane 30 False
2 Mike 35 False
3 Emily 40 False
4 David 45 False
Conclusion
Dans cet article, nous avons exploré trois méthodes différentes pour ajouter des colonnes à vos data frames avec Pandas. Nous avons examiné l'utilisation d'une liste Python, la fonction "insert" de Pandas et la fonction "assign" de Pandas. Chacune de ces méthodes a ses propres avantages et inconvénients, il est donc important de choisir celle qui convient le mieux à votre situation.
Si vous avez un petit ensemble de données avec des valeurs connues, l'utilisation d'une liste Python est la méthode la plus simple et la plus directe. Si vous voulez insérer une colonne à une position spécifique dans votre data frame, la fonction "insert" est la meilleure option. Et si vous souhaitez créer un nouveau data frame avec une colonne ajoutée tout en conservant l'original, la fonction "assign" est idéale.
J'espère que cet article vous a été utile pour comprendre comment ajouter des colonnes à vos data frames avec Pandas. N'hésitez pas à l'expérimenter avec vos propres données pour vous familiariser davantage avec ces méthodes. Bonne analyse de données !
FAQ
Can I add multiple columns at once using these methods?
Oui, vous pouvez ajouter plusieurs colonnes en utilisant ces méthodes. Il vous suffit de fournir une liste de valeurs pour chaque colonne que vous souhaitez ajouter. Par exemple, si vous voulez ajouter deux colonnes, vous pouvez le faire en utilisant la méthode 1 ou la méthode 3 et en fournissant deux listes de valeurs.
Can I add a column with different data types?
Oui, vous pouvez ajouter une colonne avec différents types de données en utilisant ces méthodes. Cependant, assurez-vous que les données que vous fournissez correspondent au type de données approprié pour la colonne. Par exemple, si vous ajoutez une colonne de type booléen, assurez-vous que les valeurs que vous fournissez sont des booléens.
Is it possible to add columns to a data frame with missing values?
Oui, il est tout à fait possible d'ajouter des colonnes à un data frame avec des valeurs manquantes. Vous pouvez utiliser la méthode 1 ou la méthode 3 et fournir des valeurs nulles pour les lignes où vous souhaitez que les données soient manquantes. Assurez-vous simplement d'utiliser la constante "np.nan" de la bibliothèque NumPy pour représenter les valeurs nulles.