Wie man die Reihenfolge der Pandas DataFrame-Spalten ändert

Asad Riaz 30 Januar 2023
  1. Spalten in der neu gewünschten Reihenfolge in Pandas auflisten
  2. Einfügen einer neuen Spalte mit der spezifischen Position in Pandas
  3. Spalte reindizieren für gegebene Ordnung in Pandas
Wie man die Reihenfolge der Pandas DataFrame-Spalten ändert

Wir stellen vor, wie man die Reihenfolge der DataFrame-Spalten ändert, mit verschiedenen Methoden, wie z. B. die Zuweisung der Spaltennamen in der gewünschten Reihenfolge, durch die Verwendung von insert und reindex.

Spalten in der neu gewünschten Reihenfolge in Pandas auflisten

Der einfachste Weg ist die Neuzuweisung des DataFrame mit einer Liste der Spalten, oder indem wir einfach die Spaltennamen in der von uns gewünschten Reihenfolge zuweisen:

# 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)

Ausgabe:

   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

Einfügen einer neuen Spalte mit der spezifischen Position in Pandas

Wenn wir eine neue Spalte erstellen, können wir sie an beliebiger Stelle einfügen:

# 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)

Ausgabe:

   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

Spalte reindizieren für gegebene Ordnung in Pandas

Der reindex ist wohl der effizienteste Weg, die Spalte neu anzuordnen:

# 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)

Ausgabe:

   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

Verwandter Artikel - Pandas DataFrame

Verwandter Artikel - Pandas DataFrame Column