Contenu du cours
Techniques Avancées dans Pandas
Techniques Avancées dans Pandas
Gestion des Variables Catégorielles
Maintenant, vous allez travailler avec l'ensemble de données qui ne contient pas de valeurs manquantes. Les valeurs NaN
de la colonne 'Age'
ont été remplacées par la moyenne de la colonne, et la valeur NaN
de la colonne 'Fare'
a été supprimée.
Il est donc temps d'apprendre à gérer les variables catégorielles. Catégoriel signifie qu'elles ont des catégories. Par exemple, dans la colonne 'Sex'
, il y a 'male'
et 'female'
; ou dans la colonne 'Embarked'
, il y a 'Q'
, 'S'
, et 'C'
.
Que devons-nous faire pour calculer le nombre de valeurs dans chaque catégorie ou pour obtenir des informations sur elles ?
Vous connaissez déjà .loc[]
, .isin()
, .between()
et beaucoup de fonctions, mais dans pandas, il existe une manière plus élégante et pratique de le faire. Utilisez la fonction .get_dummies()
. À titre d'exemple, nous allons l'appliquer à la colonne 'Embarked'
. Regardez l'implémentation et le résultat (nous afficherons les noms de 5 passagers aléatoires et les nouvelles colonnes que nous avons créées).
import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/titanic3.csv', index_col = 0) data = pd.get_dummies(data, columns = ['Embarked']) print(data[['Name', 'Embarked_C', 'Embarked_Q', 'Embarked_S']].sample(5))
Examinons l'une des sorties possibles, en particulier l'une des combinaisons possibles de cinq lignes sélectionnées aléatoirement. Vous pouvez faire défiler horizontalement le tableau pour voir toutes les colonnes :
Explication :
En conséquence, notre fonction a divisé la colonne 'Embarked'
en trois colonnes : 'Embarked_C'
, 'Embarked_Q'
, et 'Embarked_S'
. Au total, nous avons trois catégories. Chaque passager a sa catégorie dans la colonne 'Embarked'
. Ainsi, notre fonction crée trois colonnes correspondant à chaque catégorie, et pour chaque passager, elle remplit la ligne de la colonne avec 1
si la personne était initialement liée à la géographie ; sinon, elle indique 0
. Ainsi, nous obtenons 1
dans une seule colonne.
pd.get_dummies()
- cette fonction convertit les variables catégorielles en variables factices (1 ou 0);data
- le cadre de données que vous souhaitez utiliser;columns = ['Embarked']
- les colonnes ont des variables catégorielles que vous souhaitez transformer en variables factices. Faites attention; il est obligatoire de mettre les noms de colonnes dans la liste.
Swipe to start coding
Votre tâche ici est de transformer la colonne 'Sex'
en une avec des variables factices au lieu de variables catégorielles. Ensuite, affichez la somme des valeurs dans chaque catégorie.
Solution
Merci pour vos commentaires !
Gestion des Variables Catégorielles
Maintenant, vous allez travailler avec l'ensemble de données qui ne contient pas de valeurs manquantes. Les valeurs NaN
de la colonne 'Age'
ont été remplacées par la moyenne de la colonne, et la valeur NaN
de la colonne 'Fare'
a été supprimée.
Il est donc temps d'apprendre à gérer les variables catégorielles. Catégoriel signifie qu'elles ont des catégories. Par exemple, dans la colonne 'Sex'
, il y a 'male'
et 'female'
; ou dans la colonne 'Embarked'
, il y a 'Q'
, 'S'
, et 'C'
.
Que devons-nous faire pour calculer le nombre de valeurs dans chaque catégorie ou pour obtenir des informations sur elles ?
Vous connaissez déjà .loc[]
, .isin()
, .between()
et beaucoup de fonctions, mais dans pandas, il existe une manière plus élégante et pratique de le faire. Utilisez la fonction .get_dummies()
. À titre d'exemple, nous allons l'appliquer à la colonne 'Embarked'
. Regardez l'implémentation et le résultat (nous afficherons les noms de 5 passagers aléatoires et les nouvelles colonnes que nous avons créées).
import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/titanic3.csv', index_col = 0) data = pd.get_dummies(data, columns = ['Embarked']) print(data[['Name', 'Embarked_C', 'Embarked_Q', 'Embarked_S']].sample(5))
Examinons l'une des sorties possibles, en particulier l'une des combinaisons possibles de cinq lignes sélectionnées aléatoirement. Vous pouvez faire défiler horizontalement le tableau pour voir toutes les colonnes :
Explication :
En conséquence, notre fonction a divisé la colonne 'Embarked'
en trois colonnes : 'Embarked_C'
, 'Embarked_Q'
, et 'Embarked_S'
. Au total, nous avons trois catégories. Chaque passager a sa catégorie dans la colonne 'Embarked'
. Ainsi, notre fonction crée trois colonnes correspondant à chaque catégorie, et pour chaque passager, elle remplit la ligne de la colonne avec 1
si la personne était initialement liée à la géographie ; sinon, elle indique 0
. Ainsi, nous obtenons 1
dans une seule colonne.
pd.get_dummies()
- cette fonction convertit les variables catégorielles en variables factices (1 ou 0);data
- le cadre de données que vous souhaitez utiliser;columns = ['Embarked']
- les colonnes ont des variables catégorielles que vous souhaitez transformer en variables factices. Faites attention; il est obligatoire de mettre les noms de colonnes dans la liste.
Swipe to start coding
Votre tâche ici est de transformer la colonne 'Sex'
en une avec des variables factices au lieu de variables catégorielles. Ensuite, affichez la somme des valeurs dans chaque catégorie.
Solution
Merci pour vos commentaires !