Réindexer un GeoDataFrame avec GeoDataFrame.set_index()

Lors de l’analyse de données géospatiales avec GeoPandas, il peut être utile de changer l’index d’un GeoDataFrame afin d’en faciliter la manipulation, la sélection ou l’identification. Par défaut, un GeoDataFrame utilise un index numérique, mais celui-ci peut être remplacé par une colonne existante contenant des identifiants uniques, des noms ou des codes.

La méthode set_index() permet de définir n’importe quelle colonne comme nouvel index du GeoDataFrame. Cette opération est particulièrement utile pour :

Le réindexage ne modifie pas les géométries du GeoDataFrame, mais permet d’organiser les données de manière plus logique et plus pratique selon le contexte d’analyse.

Il est également possible de choisir si l’ancienne colonne utilisée pour l’index doit être conservée dans les colonnes ou non, grâce au paramètre drop=False ou drop=True.

En somme, set_index() est une méthode puissante pour structurer efficacement vos données géospatiales en fonction de vos besoins analytiques ou opérationnels.

Fonctions :

  • GeoDataFrame.set_index()

    La méthode GeoDataFrame.set_index() permet de définir une ou plusieurs colonnes comme index d'un GeoDataFrame. Cela permet de réorganiser les données et de faciliter les opérations de recherche et d'indexation.

    Importation :

    import geopandas as gpd

    Attributs :

    Paramètre Type Description Valeur par défaut
    keys str ou list Nom(s) de la ou des colonnes à utiliser comme index. None
    drop bool Si True, supprime la colonne utilisée comme index du DataFrame. True
    inplace bool Si True, modifie le GeoDataFrame en place, sinon retourne un nouveau GeoDataFrame. False
    verify_integrity bool Vérifie l'intégrité des index, s’assurant qu’ils sont uniques. False

    Exemple de code :

    import geopandas as gpd
    from shapely.geometry import Point
    
    # Création d’un GeoDataFrame avec des géométries
    gdf = gpd.GeoDataFrame({
        'id': [1, 2, 3],
        'geometry': [Point(0, 0), Point(1, 1), Point(2, 2)],
        'name': ['A', 'B', 'C']
    })
    
    # Définir 'id' comme index
    gdf_set_index = gdf.set_index('id')
    
    # Affichage du GeoDataFrame après modification de l'index
    print(gdf_set_index)
    Résultat du code

    Explication du code :

    1. Un GeoDataFrame est créé avec trois colonnes : id, geometry et name.

    2. Nous utilisons set_index('id') pour définir la colonne id comme index du GeoDataFrame.

    3. Après l'exécution de cette ligne, le GeoDataFrame est réorganisé, et la colonne id devient l'index. Ce qui signifie que la colonne id ne fera plus partie des données du DataFrame, sauf si drop=False est spécifié.

    4. Le GeoDataFrame modifié est ensuite affiché, et on remarque que la colonne id a été déplacée en tant qu'index, ce qui facilite les recherches et les manipulations basées sur cet index.

    Remarque importante :

    • Si vous ne souhaitez pas supprimer la colonne utilisée comme index, vous pouvez définir drop=False. Cela conservera la colonne dans le GeoDataFrame, tout en la rendant l'index.

    • Le paramètre verify_integrity permet de vérifier si les valeurs de l'index sont uniques. Si vous souhaitez garantir qu'il n'y a pas de doublons dans l'index, il peut être utile de définir ce paramètre sur True.