Comment changer l'ordre des colonnes de Pandas DataFrame

  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

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

  • Comment ajouter une ligne d'en-tête à un Pandas DataFrame
  • Comment supprimer une ligne en fonction de la valeur de la colonne dans Pandas DataFrame
  • Article connexe - Pandas DataFrame Column

  • Comment créer une colonne vide dans Pandas DataFrame
  • Remplacer les valeurs des colonnes dans Pandas DataFrame