Gérer les étiquettes dupliquées

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à gérer les étiquettes dupliquées dans pandas. Pandas est une bibliothèque puissante de manipulation de données en Python. Souvent, nous rencontrons des données avec des étiquettes de ligne ou de colonne dupliquées, et il est crucial de comprendre comment détecter et gérer ces doublons.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter Notebook pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques pandas et numpy, qui nous aideront à créer et à manipuler des données.

## Importing necessary libraries
import pandas as pd
import numpy as np

Comprendre les conséquences des étiquettes dupliquées

Les étiquettes dupliquées peuvent modifier le comportement de certaines opérations dans pandas. Par exemple, certaines méthodes ne fonctionnent pas lorsqu'il y a des doublons.

## Creating a pandas Series with duplicate labels
s1 = pd.Series([0, 1, 2], index=["a", "b", "b"])

## Attempting to reindex the Series
try:
    s1.reindex(["a", "b", "c"])
except Exception as e:
    print(e)

Doublons dans l'indexation

Ensuite, nous allons voir comment les doublons dans l'indexation peuvent entraîner des résultats inattendus.

## Creating a DataFrame with duplicate column labels
df1 = pd.DataFrame([[0, 1, 2], [3, 4, 5]], columns=["A", "A", "B"])

## Indexing 'B' returns a Series
print(df1["B"])

## Indexing 'A' returns a DataFrame
print(df1["A"])

Détection des étiquettes dupliquées

Nous pouvons vérifier s'il y a des étiquettes dupliquées en utilisant les méthodes Index.is_unique et Index.duplicated().

## Checking if the index has unique labels
print(df1.index.is_unique)

## Checking if the columns have unique labels
print(df1.columns.is_unique)

## Detecting duplicate labels in the index
print(df1.index.duplicated())

Interdiction des étiquettes dupliquées

Si nécessaire, nous pouvons interdire les étiquettes dupliquées en utilisant la méthode set_flags(allows_duplicate_labels=False).

## Disallowing duplicate labels in a Series
try:
    pd.Series([0, 1, 2], index=["a", "b", "b"]).set_flags(allows_duplicate_labels=False)
except Exception as e:
    print(e)

## Disallowing duplicate labels in a DataFrame
try:
    pd.DataFrame([[0, 1, 2], [3, 4, 5]], columns=["A", "B", "C"]).set_flags(allows_duplicate_labels=False)
except Exception as e:
    print(e)

Vérification et définition du drapeau d'étiquettes dupliquées

Enfin, nous pouvons vérifier et définir le drapeau allows_duplicate_labels sur un DataFrame.

## Creating a DataFrame and setting allows_duplicate_labels to False
df = pd.DataFrame({"A": [0, 1, 2, 3]}, index=["x", "y", "X", "Y"]).set_flags(allows_duplicate_labels=False)

## Checking the allows_duplicate_labels flag
print(df.flags.allows_duplicate_labels)

## Setting allows_duplicate_labels to True
df2 = df.set_flags(allows_duplicate_labels=True)
print(df2.flags.allows_duplicate_labels)

Sommaire

Dans ce laboratoire, nous avons appris à gérer les étiquettes dupliquées dans pandas. Nous avons compris les conséquences d'avoir des étiquettes dupliquées, appris à les détecter et à les interdire si nécessaire. C'est une compétence essentielle lorsqu'il s'agit de traiter de grands ensembles de données où des étiquettes dupliquées pourraient potentiellement entraîner une analyse et des résultats erronés.