Concaténation verticale de DataFrames (concat avec axis=0)

La concaténation verticale de DataFrames avec concat et axis=0 permet d’assembler plusieurs DataFrames en un seul, en empilant les lignes les unes sur les autres. Cela signifie que les lignes de chaque DataFrame seront ajoutées à la suite des autres, formant un DataFrame plus grand. axis=0 indique que la concaténation se fait le long de l’axe des lignes (par opposition à l’axe des colonnes). Les DataFrames doivent avoir les mêmes colonnes pour que la concaténation soit réussie, sinon des colonnes manquantes seront remplies avec des valeurs NaN. Cela est utile lorsque vous avez plusieurs jeux de données structurés de manière identique et que vous souhaitez les fusionner en une seule table.

Fonctions :

  • concat(axis=0)

    La fonction pd.concat() permet de concaténer plusieurs DataFrames le long d'un axe donné. Lorsqu'on utilise axis=0, cela signifie que les DataFrames sont concaténés verticalement, c'est-à-dire que les lignes des DataFrames sont empilées les unes sur les autres. Ce type de concaténation est souvent utilisé lorsque vous voulez fusionner plusieurs jeux de données ayant les mêmes colonnes.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Description
    axis=0 Concaténer les DataFrames verticalement (par ligne).
    ignore_index=True Réindexer les lignes après la concaténation (utile pour éviter des index dupliqués).
    keys Créer une hiérarchie d'index avec une clé pour chaque DataFrame.
    join='inner' ou join='outer' Détermine la manière dont les colonnes des DataFrames sont fusionnées. 'inner' ne conserve que les colonnes communes, tandis que 'outer' garde toutes les colonnes (valeurs manquantes où il n'y a pas de correspondance).

    Exemple de code :

    import pandas as pd
    
    # Exemple de DataFrames
    df1 = pd.DataFrame({
        'A': [1, 2, 3],
        'B': ['a', 'b', 'c']
    })
    
    df2 = pd.DataFrame({
        'A': [4, 5, 6],
        'B': ['d', 'e', 'f']
    })
    
    # Concaténation verticale des DataFrames
    df_concat = pd.concat([df1, df2], axis=0)
    
    # Affichage du DataFrame concaténé
    print(df_concat)

    Explication du code :

    1. Création des DataFrames : Nous créons deux DataFrames df1 et df2 ayant les mêmes colonnes A et B mais avec des valeurs différentes.
    2. Concaténation avec axis=0 : La fonction pd.concat([df1, df2], axis=0) concatène les deux DataFrames verticalement, c'est-à-dire que les lignes de df2 seront ajoutées en dessous des lignes de df1.
    3. Affichage : Le DataFrame résultant contient toutes les lignes des deux DataFrames originaux, empilées les unes sur les autres.

    📍 Remarques

    • Indexation après concaténation : Dans l'exemple ci-dessus, l'index des lignes du DataFrame résultant est préservé tel qu'il était dans df1 et df2, ce qui conduit à des indices dupliqués (0, 1, 2). Pour éviter cela, on peut utiliser ignore_index=True pour réindexer automatiquement les lignes dans le DataFrame concaténé.

    • Colonnes différentes : Si les DataFrames ont des colonnes différentes, la fonction concat() ajoutera des colonnes manquantes dans les DataFrames. Par exemple, si df1 a une colonne A et B, et df2 a une colonne C, la concaténation ajoutera une colonne C avec des valeurs NaN pour df1.

    • Jointure sur les colonnes : Vous pouvez contrôler la façon dont les colonnes sont jointes en utilisant le paramètre join. Par défaut, join='outer' est utilisé, ce qui inclut toutes les colonnes des DataFrames. Si vous voulez seulement les colonnes communes, utilisez join='inner'.