Skip to content

Comprendre les indices des DataFrames de Pandas : Un guide pour les débutants

Updated on

En tant que Data Scientist, vous êtes probablement déjà familier avec la bibliothèque Pandas pour Python, qui est l'un des outils d'analyse de données les plus populaires utilisés aujourd'hui. Pandas offre une gamme de fonctionnalités pour travailler avec des données structurées, y compris des structures de données puissantes comme les DataFrames et les Series.

Dans ce tutoriel, nous allons nous concentrer sur un aspect clé de la manipulation des DataFrames de Pandas : les indices. Nous couvrirons ce que sont les indices, pourquoi ils sont importants et comment les manipuler de manière efficace.

Vous voulez créer rapidement une visualisation de données à partir d'un DataFrame de Pandas en Python sans écrire de code ?

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

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

Qu'est-ce que les indices des DataFrames ?

Commençons par les bases : qu'est-ce qu'un index de DataFrame ? Au niveau le plus basique, l'index est une manière d'étiqueter les lignes et les colonnes d'un DataFrame de Pandas.

Imaginez-le comme une table de base de données avec une clé primaire - l'index est essentiellement un ensemble d'identifiants uniques qui permettent d'accéder rapidement et efficacement à des lignes de données spécifiques. Il est également important de noter que l'index peut être numérique ou non numérique (par exemple, des valeurs de date/heure).

L'index fait partie intégrante du DataFrame et il est largement utilisé dans de nombreuses opérations de Pandas, y compris l'indexation, la sélection et le filtrage.

Définition des indices d'un DataFrame

Par défaut, les DataFrames de Pandas ont un index numérique qui commence à 0 et va jusqu'au nombre total de lignes du DataFrame. Cependant, vous pouvez définir l'index sur n'importe quelle autre colonne du DataFrame si cela a plus de sens pour votre cas d'utilisation.

Par exemple, si vous avez un DataFrame contenant des données de vente pour différentes régions, vous voudrez peut-être définir l'index sur la colonne 'region' de manière à pouvoir plus facilement filtrer et sélectionner des données pour des régions spécifiques.

Pour définir l'index d'un DataFrame, vous pouvez utiliser la méthode set_index(). Par exemple, si vous avez un DataFrame appelé sales_data et que vous souhaitez définir l'index sur la colonne 'region', vous pouvez utiliser le code suivant :

sales_data = sales_data.set_index('region')

Vous pouvez également définir l'index lors de la création d'un DataFrame à partir de zéro en utilisant le paramètre index. Par exemple, si vous souhaitez créer un DataFrame de données de vente avec un index non numérique basé sur des dates, vous pouvez utiliser le code suivant :

import pandas as pd
 
sales_data = pd.DataFrame({
    'date': ['2022-01-01', '2022-01-02', '2022-01-03'],
    'sales': [100, 200, 150]
}, index=['2022-01-01', '2022-01-02', '2022-01-03'])

Travailler avec les indices d'un DataFrame

Une fois que vous avez défini l'index pour votre DataFrame, vous pouvez commencer à l'utiliser pour filtrer et sélectionner des données. Une des opérations les plus courantes est la sélection d'une ligne spécifique en fonction de sa valeur d'index.

Pour sélectionner une ligne par son index, vous pouvez utiliser la méthode loc[]. Par exemple, si vous avez un DataFrame appelé sales_data avec la colonne 'region' définie comme index, et que vous souhaitez sélectionner toutes les données de vente pour la région 'Northeast', vous pouvez utiliser le code suivant :

northeast_sales = sales_data.loc['Northeast']

Vous pouvez également utiliser l'index pour filtrer le DataFrame en fonction de critères spécifiques. Par exemple, si vous voulez filtrer le DataFrame pour inclure uniquement les données de vente pour les régions 'Northeast' et 'West', vous pouvez utiliser le code suivant :

northeast_west_sales = sales_data.loc[['Northeast', 'West']]

Indices à plusieurs niveaux

Dans certains cas, vous pouvez avoir besoin d'utiliser plus d'un index pour votre DataFrame. On parle alors d'index à plusieurs niveaux, ce qui vous permet d'organiser vos données de manière hiérarchique.

Par exemple, si vous avez des données de vente pour plusieurs régions sur plusieurs années, vous pouvez utiliser un index à plusieurs niveaux avec la colonne 'region' comme premier niveau et la colonne 'year' comme deuxième niveau.

Pour créer un DataFrame avec un index à plusieurs niveaux, vous pouvez utiliser plusieurs fois la méthode set_index(). Par exemple, si vous avez un DataFrame appelé sales_data avec les colonnes suivantes : 'region', 'year' et 'sales', vous pouvez créer un index à plusieurs niveaux avec le code suivant :

sales_data = sales_data.set_index(['region', 'year'])

Une fois que vous avez un DataFrame avec un index à plusieurs niveaux, vous pouvez utiliser la méthode loc[] pour sélectionner des données en fonction des deux niveaux de l'index. Par exemple, si vous souhaitez sélectionner toutes les données de vente pour la région 'Northeast' en 2022, vous pouvez utiliser le code suivant :

northeast_2022_sales = sales_data.loc[('Northeast', 2022)]

Personnalisation des indices d'un DataFrame

Dans certains cas, les index par défaut numériques ou basés sur des colonnes peuvent ne pas être adaptés à vos données. Heureusement, Pandas offre une gamme de options pour personnaliser les indices.

Par exemple, vous pouvez créer un index non numérique basé sur une fonction ou une formule personnalisée. Pour ce faire, vous pouvez utiliser la méthode Index.map() ou Index.from_tuples().

import pandas as pd
 
# créer un DataFrame avec un index personnalisé
data = pd.DataFrame({
    'x': [1, 2, 3],
    'y': [4, 5, 6]
}, index=[1, 4, 7])
 
# créer un index personnalisé en utilisant une formule
custom_index = data.index.map(lambda x: x * 10)
 
# utiliser l'index personnalisé pour créer un nouveau DataFrame
new_data = pd.DataFrame({
    'x': [4, 5],
    'y': [7, 8]

}, index=[40, 50])


## Conclusion

Dans ce tutoriel, nous avons couvert les bases des indices de DataFrame Panda et comment travailler avec eux de manière efficace. Nous avons exploré la définition d'indices, la sélection de données en utilisant des indices (y compris des indices à plusieurs niveaux) et la personnalisation des indices pour correspondre à vos données.

Avec les connaissances acquises grâce à ce tutoriel, vous pouvez maintenant optimiser votre analyse de données et visualisation en utilisant les indices de DataFrame Panda. Nous espérons que ce tutoriel vous a été utile et si vous avez des questions ou des commentaires, n'hésitez pas à nous contacter !

**Lecture et ressources complémentaires:**
- [Conversion d'un DataFrame Panda en Liste](/topics/Pandas/dataframe-tolist)
- [Concaténation de deux DataFrames dans Pandas](/topics/Pandas/pandas-concat-two-dataframes)
- [Recherche d'une valeur dans une colonne d'un DataFrame Panda](/topics/Pandas/dataframe-search-value-column)
- [Conversion d'un DataFrame Panda en tableau Numpy](/topics/Pandas/convert-dataframe-numpy-array)

## Questions fréquemment posées

1. **Quels sont les indices d'un DataFrame?**

   Les indices d'un DataFrame dans pandas sont des étiquettes qui identifient de manière unique chaque ligne du DataFrame. Ils servent comme moyen d'accéder, de manipuler et d'effectuer des opérations sur les données de manière structurée. Par défaut, un DataFrame est assigné un index numérique commençant par 0, mais il peut également avoir des indices personnalisés basés sur des colonnes spécifiques ou d'autres critères.

2. **Combien d'indices un DataFrame peut-il avoir?**

   Dans pandas, un DataFrame peut avoir plusieurs indices, également connu sous le nom d'index multi-niveaux ou hiérarchiques. Cela permet des structures de données plus complexes où chaque ligne peut être identifiée de manière unique par une combinaison de plusieurs étiquettes ou niveaux. Le nombre d'indices qu'un DataFrame peut avoir n'est pas fixé et peut varier en fonction des données spécifiques et des besoins.

3. **Comment ajouter des indices à un DataFrame?**

   Dans pandas, des indices peuvent être ajoutés à un DataFrame à l'aide de la méthode `set_index()`. Cette méthode vous permet de spécifier une ou plusieurs colonnes du DataFrame comme nouvel index. De plus, vous pouvez également utiliser la méthode `reset_index()` pour supprimer l'index actuel et revenir à l'index numérique par défaut. Ces méthodes offrent une flexibilité dans la gestion et la manipulation des indices dans un DataFrame.


import JSONldScript from '../../../components/jsonld-script';

<JSONldScript
    faq={{
        "data": [
            {
                "question": "Quels sont les indices d'un DataFrame?",
                "answer": "Les indices d'un DataFrame dans pandas sont des étiquettes qui identifient de manière unique chaque ligne du DataFrame. Ils servent comme moyen d'accéder, de manipuler et d'effectuer des opérations sur les données de manière structurée. Par défaut, un DataFrame est assigné un index numérique commençant par 0, mais il peut également avoir des indices personnalisés basés sur des colonnes spécifiques ou d'autres critères."
            },
            {
                "question": "Combien d'indices un DataFrame peut-il avoir?",
                "answer": "Dans pandas, un DataFrame peut avoir plusieurs indices, également connu sous le nom d'index multi-niveaux ou hiérarchiques. Cela permet des structures de données plus complexes où chaque ligne peut être identifiée de manière unique par une combinaison de plusieurs étiquettes ou niveaux. Le nombre d'indices qu'un DataFrame peut avoir n'est pas fixé et peut varier en fonction des données spécifiques et des besoins."
            },
            {
                "question": "Comment ajouter des indices à un DataFrame?",
                "answer": "Dans pandas, des indices peuvent être ajoutés à un DataFrame à l'aide de la méthode `set_index()`. Cette méthode vous permet de spécifier une ou plusieurs colonnes du DataFrame comme nouvel index. De plus, vous pouvez également utiliser la méthode `reset_index()` pour supprimer l'index actuel et revenir à l'index numérique par défaut. Ces méthodes offrent une flexibilité dans la gestion et la manipulation des indices dans un DataFrame."
            }
        ]
    }}
/>