Comment changer l'ordre des colonnes de Pandas DataFrame

Asad Riaz 30 janvier 2023
  1. Lister les colonnes dans le nouvel ordre souhaité dans les Pandas
  2. Insérer une nouvelle colonne avec l’emplacement spécifique dans Pandas
  3. colonne reindex pour un ordre donné dans Pandas
Comment changer l'ordre des colonnes de Pandas DataFrame

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

Article connexe - Pandas DataFrame

Article connexe - Pandas DataFrame Column