Pandas Spalten neu anordnen: Effiziente Techniken zur Manipulation von DataFrames
Updated on
Pandas, eine fundamentale Python-Bibliothek, ist ein Instrument für die Datenmanipulation und -analyse. Eine effektive Organisation von Daten, wie zum Beispiel die Neuordnung von Spalten in einem DataFrame, kann Ihren Datenverarbeitungsworkflow erheblich verbessern. Dieser Artikel präsentiert ein umfassendes Tutorial zur Neuordnung von Spalten in einem Pandas DataFrame und konzentriert sich detailliert auf die Methode reindex() sowie verschiedene andere Techniken zur DataFrame-Manipulation.
Es gibt zahlreiche Gründe, warum Sie die Spalten in Ihrem DataFrame neu anordnen möchten. Vielleicht möchten Sie wichtige Spalten besser sichtbar machen, oder vielleicht müssen Ihre Daten zur Analyse in einer bestimmten Reihenfolge vorliegen. Egal aus welchem Grund, die Neuordnung von Spalten in einem Pandas DataFrame ist eine grundlegende Fähigkeit bei der Datenanalyse.
Möchten Sie schnell Data Visualization aus Python Pandas Dataframe ohne Code erstellen?
PyGWalker ist eine Python-Bibliothek für Exploratory Data Analysis mit Visualization. PyGWalker (opens in a new tab) kann Ihre Jupyter Notebook-Datenanalyse und Datenvisualisierung vereinfachen, indem es Ihr Pandas DataFrame (und polars DataFrame) in eine Tableau-ähnliche Benutzeroberfläche für visuelle Exploration umwandelt.
Die Grundlagen der Neuordnung von Spalten in Pandas DataFrames
Verwendung der Methode reindex()
Die Methode reindex() ist ein direkter und effizienter Weg, um Spalten in einem Pandas DataFrame neu anzuordnen. Die Syntax ist ziemlich einfach. Die Methode funktioniert, indem sie ein neues DataFrame mit der von Ihnen angegebenen Spaltenreihenfolge erstellt. Hier ist ein Beispiel:
import pandas as pd
## Erstellen eines DataFrame
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
## Spalten neu anordnen
df = df.reindex(['B', 'A', 'C'], axis=1)
print(df)
In diesem Beispiel haben wir zunächst die Spalten 'A', 'B', 'C' im DataFrame. Die Funktion reindex() ordnet das DataFrame zuerst um in 'B', 'A', 'C'. Es ist wichtig zu beachten, dass Sie axis=1
an die reindex()-Methode übergeben müssen, um anzugeben, dass Sie Spalten und nicht Zeilen neu anordnen. Dies kann leicht übersehen werden und potenzielle Fehler verursachen.
Verwendung der Methoden Loc und Iloc
Eine andere Methode zur Neuordnung von Spalten in einem Pandas DataFrame ist die Verwendung der Methoden loc
und iloc
, die traditionell zur Indizierung verwendet werden. Diese Methoden können auch das DataFrame neu anordnen, indem die Spaltenreihenfolge angegeben wird, wenn eine Teilmenge von Spalten ausgewählt wird. Hier ist ein Beispiel:
## Verwendung von loc
df = df.loc[:, ['B', 'A', 'C']]
## Verwendung von iloc
df = df.iloc[:, [1, 0, 2]]
print(df)
Im ersten Fall wird loc
mit einer Liste von Spaltennamen verwendet, um das DataFrame neu anzuordnen. Im zweiten Fall verwendet iloc
eine indizespezifische Indizierung, um die neue Spaltenreihenfolge anzugeben.
Alphabetische Neuordnung von Spalten
Wenn Sie es mit einem großen DataFrame mit zahlreichen Spalten zu tun haben, ist es möglicherweise nicht möglich, die Spaltenreihenfolge manuell anzugeben. In solchen Fällen können Sie Ihr DataFrame einfach alphabetisch neu anordnen.
df = df.sort_index(axis=1)
print(df)
Dieser Code sortiert die Spalten alphabetisch mit der Funktion sort_index()
. Der Parameter axis=1
gibt an, dass die Operation auf Spalten ausgeführt werden soll.
Neuordnung von Spalten basierend auf ihren Werten
Eine interessante und effiziente Funktion von Pandas ist die Möglichkeit, Spalten basierend auf ihren Werten neu anzuordnen. Sie möchten zum Beispiel Ihr DataFrame basierend auf der Summe, dem Durchschnitt oder einem anderen Aggregat der Spaltenwerte neu anordnen.
df = df.reindex(df.sum().sort_values(ascending
=False).index, axis=1)
print(df)
Dieser Code ordnet das DataFrame neu basierend auf der Summe der Spaltenwerte, wobei höhere Summen zuerst angezeigt werden. Zuerst berechnet df.sum()
die Summe jeder Spalte. Dann sortiert sort_values(ascending=False)
diese Summen in absteigender Reihenfolge. Schließlich ordnet reindex()
das DataFrame entsprechend dieser Reihenfolge neu.
Warnungen und potenzielle Risiken
Obwohl die Neuordnung von Spalten die Datenanalyse effizienter machen kann, ist es wichtig, potenzielle Risiken zu beachten. Wenn Sie der reindex()-Methode keine vollständige Liste von Spaltennamen übergeben, fügt sie neue Spalten in Ihr DataFrame ein, wenn fehlende Spaltennamen vorhanden sind, gefüllt mit NaN-Werten. Ebenso erstellt die reindex()-Methode neue Spalten mit den übergebenen Spaltennamen, die nicht im ursprünglichen DataFrame vorhanden sind, erneut gefüllt mit NaN-Werten.
Aus diesem Grund ist es immer eine gute Praxis, Ihre Liste von Spaltennamen zu überprüfen. Und denken Sie daran, das Schöne an Pandas ist, dass es Ihnen ermöglicht, verschiedene Techniken auszuprobieren, um diejenige zu finden, die am besten zu Ihren Bedürfnissen passt.
Im nächsten Abschnitt werden wir weitere Techniken zur Neuordnung von Spalten in Pandas DataFrame erkunden, wie das Verschieben bestimmter Spalten an den Anfang oder das Ende des DataFrames, das Umbenennen von Spalten oder sogar das Austauschen mehrerer Spalten auf einmal. Bleiben Sie dran, um die Kunst der DataFrame-Manipulation mit Pandas zu beherrschen.
Verschieben einer bestimmten Spalte an den Anfang oder das Ende
Das Verschieben einer bestimmten Spalte an den Anfang oder das Ende eines DataFrames ist eine häufige Anforderung. So können Sie dies erreichen:
## Verschieben der Spalte 'B' an den Anfang
df = df[['B'] + [col for col in df.columns if col != 'B']]
## Verschieben der Spalte 'A' an das Ende
df = df[[col for col in df.columns if col != 'A'] + ['A']]
print(df)
In beiden Fällen generieren wir eine neue Liste von Spaltennamen und ordnen das DataFrame entsprechend neu. Dies ist ein einfacher und effizienter Weg, um Spalten in Pandas DataFrame zu verschieben.
Umbenennen von Spalten
Das Umbenennen von Spalten in einem DataFrame ist mit pandas einfach. Hier ist ein Beispiel:
df = df.rename(columns={'A': 'Alpha', 'B': 'Beta', 'C': 'Gamma'})
print(df)
Dies benennt die Spalten 'A', 'B' und 'C' entsprechend in 'Alpha', 'Beta' und 'Gamma' um.
Mehrere Spalten auf einmal austauschen
Das Austauschen mehrerer Spalten in einem pandas DataFrame kann mit einer einfachen Technik erreicht werden:
df = df[['B', 'A'] + [col for col in df.columns if col not in ['A', 'B']]]
print(df)
Dieser Code-Ausschnitt tauscht die Spalten 'A' und 'B' im DataFrame aus. Es ist eine einfache, aber leistungsstarke Möglichkeit, Spalten in Ihrem DataFrame neu anzuordnen, ohne ein neues zu erstellen.
Fazit
Pandas bietet eine Vielzahl von Möglichkeiten, Spalten in einem DataFrame neu anzuordnen, von denen jede ihre eigenen Vorteile und Anwendungsfälle hat. Ob Sie die Methode reindex()
, die Methoden loc
und iloc
oder einfach das Verschieben bestimmter Spalten verwenden, das Beherrschen dieser Techniken wird Ihren Arbeitsablauf bei der Datenanalyse erheblich verbessern. Daher zögern Sie nicht, mit ihnen zu experimentieren und herauszufinden, welche Methoden am besten für Ihre Daten geeignet sind.
Als zusätzlicher Tipp sollten Sie immer potenzielle Risiken und Fehler sorgfältig prüfen, während Sie DataFrame-Spalten neu anordnen. Durch Vermeidung unnötiger Komplikationen wird Ihre pandas-Reise reibungsloser und angenehmer verlaufen.
Häufig gestellte Fragen (FAQs)
1. Wie kann ich Spalten in einem Pandas DataFrame neu anordnen?
Sie können Spalten in einem pandas DataFrame mit Hilfe der reindex()
-Methode, den Methoden loc
und iloc
oder durch direkte Angabe einer neuen Spaltenreihenfolge neu anordnen.
2. Wie lautet die Syntax für die Verwendung der reindex()
-Methode zur Neuanordnung von Spalten?
Die reindex()
-Methode akzeptiert eine Liste von Spaltennamen in der gewünschten Reihenfolge. Stellen Sie sicher, dass Sie axis=1
setzen, um anzugeben, dass Sie Spalten neu anordnen möchten. Zum Beispiel: df = df.reindex(['B', 'A', 'C'], axis=1)
3. Gibt es potenzielle Risiken oder Warnungen bei der Verwendung der reindex()
-Methode zur Neuanordnung von Spalten?
Ja, wenn Sie der reindex()
-Methode keine vollständige Liste von Spaltennamen übergeben, werden neue Spalten in Ihren DataFrame für fehlende Spaltennamen mit NaN-Werten eingefügt. Überprüfen Sie Ihre Liste von Spaltennamen, um dies zu vermeiden.