Skip to content

Comment rechercher facilement une valeur dans une colonne d'un DataFrame Pandas

En tant que data scientist, l'une des tâches les plus courantes auxquelles vous serez confronté est la recherche d'une valeur particulière dans un ensemble de données volumineux, en particulier dans un DataFrame Pandas. Le DataFrame Pandas est un outil puissant pour la manipulation, la transformation et l'analyse de données. Cependant, si vous ne savez pas comment rechercher efficacement une valeur dans une colonne spécifique, vous risquez de perdre plus de temps et d'efforts que nécessaire. Dans ce guide, nous explorerons différentes techniques pour rechercher une valeur dans une colonne d'un DataFrame à l'aide de Pandas, avec des exemples pratiques et des extraits de code pour vous aider à démarrer.

Vous souhaitez créer rapidement une visualisation des données à partir d'un DataFrame Python Pandas sans code ?

PyGWalker est une bibliothèque Python pour l'analyse exploratoire de données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse de données et de visualisation de données dans Jupyter Notebook, en transformant votre dataframe pandas (et dataframe polars) en une interface utilisateur de style Tableau pour l'exploration visuelle.

PyGWalker pour la visualisation des données (opens in a new tab)

DataFrame Pandas

Avant de plonger dans la recherche d'une valeur dans une colonne d'un DataFrame Pandas, essayons d'avoir une meilleure compréhension de ce qu'est un DataFrame Pandas. Un DataFrame Pandas est une structure de données tabulaire bidimensionnelle, mutable en taille, avec des axes étiquetés (lignes et colonnes). Il est similaire à une feuille de calcul ou à une table SQL, et c'est l'une des structures de données les plus couramment utilisées pour l'analyse et la manipulation de données en Python. Les lignes et les colonnes ont toutes deux des étiquettes uniques, qui peuvent être utilisées pour accéder aux éléments individuels du DataFrame.

Voici un exemple de création d'un DataFrame Pandas à l'aide d'un dictionnaire :

import pandas as pd
 
data = {'Nom': ['John', 'Emma', 'Peter', 'David', 'Sophie'],
        'Age': [27, 21, 24, 30, 29],
        'Genre': ['Homme', 'Femme', 'Homme', 'Homme', 'Femme'],
        'Ville': ['New York', 'Londres', 'Paris', 'Tokyo', 'Rio de Janeiro']}
 
df = pd.DataFrame(data)
 
print(df)

Résultat :

     Nom  Age  Genre             Ville
0    John   27    Homme         New York
1    Emma   21  Femme           Londres
2   Peter   24    Homme            Paris
3   David   30    Homme            Tokyo
4  Sophie   29  Femme  Rio de Janeiro

Dans cet exemple, nous avons créé un DataFrame Pandas avec quatre colonnes, à savoir 'Nom', 'Age', 'Genre' et 'Ville'. Les lignes sont étiquetées avec des entiers commençant par 0. Nous pouvons accéder aux colonnes et aux lignes individuelles à l'aide de diverses méthodes telles que l'indexation, le découpage et l'indexation booléenne.

Recherche d'une valeur dans une colonne d'un DataFrame

Supposons maintenant que nous voulions rechercher une valeur spécifique dans la colonne 'Age' du DataFrame Pandas ci-dessus. Nous pouvons utiliser le code suivant pour y parvenir :

valeur = 27
 
resultat = df[df['Age'] == valeur]
 
print(resultat)

Résultat :

   Nom  Age Genre      Ville
0  John   27   Homme  New York

Dans cet exemple, nous avons attribué la valeur 27 à une variable appelée 'valeur'. Nous avons ensuite utilisé l'indexation booléenne pour sélectionner uniquement les lignes où la colonne 'Age' correspond à la valeur 27. Enfin, nous avons affiché le DataFrame résultant, qui ne contient qu'une seule ligne où la colonne 'Age' est égale à 27.

Nous pouvons également utiliser d'autres opérateurs booléens tels que >, <, >=, <= et != pour rechercher des valeurs dans une colonne d'un DataFrame. Par exemple, pour rechercher toutes les lignes où la colonne 'Age' est supérieure ou égale à 25, nous pouvons utiliser le code suivant :

resultat = df[df['Age'] >= 25]
 
print(resultat)

Résultat :

     Nom  Age Genre             Ville
0    John   27   Homme         New York
3   David   30   Homme            Tokyo
4  Sophie   29 Femme  Rio de Janeiro

Ce code sélectionne uniquement les lignes où la colonne 'Age' est supérieure ou égale à 25.

Nous pouvons également utiliser la méthode 'isin()' pour rechercher plusieurs valeurs dans une colonne d'un DataFrame. Par exemple, pour rechercher toutes les lignes où la colonne 'Ville' est soit 'Paris' soit 'Tokyo', nous pouvons utiliser le code suivant :

villes = ['Paris', 'Tokyo']
 
resultat = df[df['Ville'].isin(villes)]
 
print(resultat)

Résultat :

    Nom  Age Genre   Ville
2  Peter   24 Homme  Paris
3  David   30 Homme  Tokyo

Ce code sélectionne uniquement les lignes où la colonne 'Ville' correspond à 'Paris' ou 'Tokyo'.

Il convient de noter que les méthodes ci-dessus ne modifient pas le DataFrame d'origine. Au lieu de cela, elles créent une copie du DataFrame qui satisfait les critères de recherche.

Amélioration des performances de recherche

Lorsque vous travaillez avec de grands ensembles de données, la recherche de valeurs dans une colonne d'un DataFrame peut être une tâche longue. Pour améliorer les performances de recherche, nous pouvons utiliser la méthode 'loc[]', qui permet une sélection spécifique de colonnes et de lignes en fonction de l'étiquette. En utilisant cette méthode, nous pouvons éviter de rechercher l'intégralité du DataFrame et nous concentrer uniquement sur les lignes qui répondent à nos critères de recherche.

Par exemple, supposons que nous voulions rechercher la valeur 27 dans la colonne 'Age' d'un grand DataFrame avec des millions de lignes. Nous pouvons utiliser le code suivant pour y parvenir :

valeur = 27
 
resultat = df.loc[df['Age'] == valeur]
 
print(resultat)

Résultat :

   Nom  Age Genre      Ville
0  John   27   Homme  New York

Dans cet exemple, nous avons utilisé la méthode 'loc[]' pour rechercher uniquement les lignes où la colonne 'Age' correspond à la valeur 27. Cette méthode est beaucoup plus rapide que l'indexation booléenne sur l'ensemble du DataFrame car elle ne fonctionne que sur les lignes qui satisfont les critères de recherche. Une autre manière d'améliorer les performances de recherche consiste à trier le DataFrame par la colonne d'intérêt, puis à utiliser la recherche binaire pour chercher la valeur. Pour trier le DataFrame par la colonne 'Age', nous pouvons utiliser le code suivant :

df.sort_values(by='Age', inplace=True)
 
print(df)

Sortie :

     Name  Age  Gender             City
1    Emma   21  Female           London
2   Peter   24    Male            Paris
0    John   27    Male         New York
4  Sophie   29  Female  Rio de Janeiro
3   David   30    Male            Tokyo

Ce code trie le DataFrame par la colonne 'Age' dans l'ordre croissant. Nous pouvons ensuite utiliser la méthode 'searchsorted()' pour effectuer une recherche binaire sur la colonne 'Age' afin de chercher la valeur. Voici un exemple :

value = 27
 
result = df.iloc[df['Age'].searchsorted(value)]
 
print(result)

Sortie :

Name         Emma
Age            21
Gender     Female
City       London
Name: 1, dtype: object

Dans cet exemple, nous avons utilisé la méthode 'searchsorted()' pour chercher la valeur 27 dans la colonne 'Age'. Cette méthode renvoie l'index de la valeur si elle existe dans la colonne, ou l'index de la valeur supérieure la plus proche si ce n'est pas le cas. Nous avons ensuite utilisé la méthode 'iloc[]' pour récupérer la ligne avec l'index spécifié.

Conclusion

La recherche d'une valeur dans une colonne de DataFrame est une tâche courante dans l'analyse et la manipulation de données, en particulier dans les DataFrame Pandas. Dans ce guide, nous avons exploré différentes techniques de recherche d'une valeur dans une colonne de DataFrame en utilisant Pandas, avec des exemples pratiques et des extraits de code pour vous aider à démarrer. Nous avons également discuté des moyens d'améliorer les performances de recherche, tels que l'utilisation de la méthode 'loc[]' ou l'exécution d'une recherche binaire sur un DataFrame trié. Avec ces techniques, vous pouvez extraire les données dont vous avez besoin avec facilité, précision et rapidité.

Liens

Questions fréquemment posées

  1. Comment rechercher une valeur spécifique dans une colonne de DataFrame ?

    Pour rechercher une valeur spécifique dans une colonne de DataFrame, vous pouvez utiliser un index booléen. Vous pouvez créer une condition booléenne en comparant les valeurs de la colonne à la valeur souhaitée, puis utiliser cette condition pour filtrer le DataFrame. Le DataFrame résultant ne contiendra que les lignes où la valeur de la colonne correspond à la valeur souhaitée.

  2. Comment obtenir une valeur spécifique à partir d'une colonne dans Pandas ?

    Pour obtenir une valeur spécifique à partir d'une colonne dans Pandas, vous pouvez utiliser l'opérateur d'indexation []. Spécifiez le nom de la colonne entre les crochets et l'index de la ligne pour récupérer la valeur à cet emplacement spécifique. La valeur retournée sera la valeur individuelle de la colonne.

  3. Comment obtenir une seule valeur à partir d'un DataFrame ?

    Pour obtenir une seule valeur à partir d'un DataFrame, vous pouvez utiliser l'accesseur at ou iat. L'accesseur at vous permet d'accéder à une valeur en spécifiant l'étiquette de ligne et le nom de la colonne, tandis que l'accesseur iat vous permet d'accéder à une valeur en spécifiant l'index de ligne et l'index de colonne. Ces accesseurs permettent de récupérer rapidement et efficacement une seule valeur à partir d'un DataFrame.