HOWTO · Pandas

Comment changer l'ordre des colonnes de Pandas DataFrame

Ce tutoriel montre comment modifier l'ordre des colonnes du DataFrame en utilisant les fonctions d'insertion, de ré-indexation et de nouvelle liste.

Nous allons introduire comment changer l’ordre des colonnes de la DataFrame, avec différentes méthodes comme l’attribution des noms de colonnes dans l’ordre que nous voulons, en utilisant insert et reindex.

Lister les colonnes dans le nouvel ordre souhaité dans les Pandas

La façon la plus simple est de réassigner la DataFrame avec une liste des colonnes, ou simplement d’assigner les noms de colonnes dans l’ordre que nous voulons:

# python 3.x
import pandas as pd

df = pd.DataFrame(
    {
        "a": ["1", "2", "3", "4"],
        "b": [16, 7, 6, 16],
        "c": [61, 57, 16, 36],
        "d": ["12", "22", "13", "44"],
        "e": ["Green", "Red", "Blue", "Yellow"],
        "f": [1, 11, 23, 66],
    }
)
print(df)
df = df[["e", "c", "b", "f", "d", "a"]]
print("Rearranging ..................")
print("..............................")
print(df)

Production:

   a   b   c   d       e   f
0  1  16  61  12   Green   1
1  2   7  57  22     Red  11
2  3   6  16  13    Blue  23
3  4  16  36  44  Yellow  66
Rearranging ..................
..............................
        e   c   b   f   d  a
0   Green  61  16   1  12  1
1     Red  57   7  11  22  2
2    Blue  16   6  23  13  3
3  Yellow  36  16  66  44  4

Insérer une nouvelle colonne avec l’emplacement spécifique dans Pandas

Si nous créons une nouvelle colonne, nous pouvons l’insérer à l’endroit que nous voulons:

# python 3.x
import pandas as pd

df = pd.DataFrame(
    {
        "a": ["1", "2", "3", "4"],
        "b": [16, 7, 6, 16],
        "c": [61, 57, 16, 36],
        "d": ["12", "22", "13", "44"],
        "e": ["Green", "Red", "Blue", "Yellow"],
        "f": [1, 11, 23, 66],
    }
)
print(df)
print("Inserting ..................")
print("..............................")
df.insert(0, "newColMean", df.mean(1))
print(df)

Production:

   newColMean  a   b   c   d       e   f
0   26.000000  1  16  61  12   Green   1
1   25.000000  2   7  57  22     Red  11
2   15.000000  3   6  16  13    Blue  23
3   39.333333  4  16  36  44  Yellow  66

colonne reindex pour un ordre donné dans Pandas

reindex est sans doute le moyen le plus efficace de réorganiser la colonne:

# python 3.x
import pandas as pd

df = pd.DataFrame(
    {
        "a": ["1", "2", "3", "4"],
        "b": [16, 7, 6, 16],
        "c": [61, 57, 16, 36],
        "d": ["12", "22", "13", "44"],
        "e": ["Green", "Red", "Blue", "Yellow"],
        "f": [1, 11, 23, 66],
    }
)
print(df)
print("Rearranging ..................")
print("..............................")
df = df.reindex(columns=["a", "f", "d", "b", "c", "e"])
print(df)

Production:

   a   b   c   d       e   f
0  1  16  61  12   Green   1
1  2   7  57  22     Red  11
2  3   6  16  13    Blue  23
3  4  16  36  44  Yellow  66
Rearranging ..................
..............................
   a   f   d   b   c       e
0  1   1  12  16  61   Green
1  2  11  22   7  57     Red
2  3  23  13   6  16    Blue
3  4  66  44  16  36  Yellow