Data Analysis

Pandas DataFrames Sortieren: Der umfassende Guide

Spread the love

Pandas DataFrames bieten leistungsstarke Werkzeuge zur Datenmanipulation, und Sortieren ist eine grundlegende Operation. Dieser Artikel untersucht, wie man ein DataFrame effizient nach einer einzelnen Spalte sortiert, wobei die entscheidende Methode sort_values() und ihre wichtigsten Argumente: ascending und na_position im Mittelpunkt stehen.

Inhaltsverzeichnis

Sortierreihenfolge mit ascending steuern

Die Methode sort_values() bietet eine einfache Steuerung der Sortierrichtung. Das Argument ascending, das standardmäßig auf True (aufsteigende Reihenfolge) gesetzt ist, bestimmt, ob aufsteigend oder absteigend sortiert werden soll.


import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'Score': [85, 92, 78, 88]}

df = pd.DataFrame(data)

# Aufsteigend sortieren nach 'Age'
df_ascending = df.sort_values(by='Age')
print("Aufsteigend:n", df_ascending)

# Absteigend sortieren nach 'Age'
df_descending = df.sort_values(by='Age', ascending=False)
print("nAbsteigend:n", df_descending)

Umgang mit fehlenden Werten mit na_position

Bei der Bearbeitung von Datensätzen mit fehlenden Werten (NaN) steuert das Argument na_position die Platzierung dieser Werte innerhalb der sortierten Spalte. Es akzeptiert zwei Werte:

  • 'first' (Standard): Platziert NaN-Werte am Anfang der sortierten Spalte.
  • 'last': Platziert NaN-Werte am Ende der sortierten Spalte.

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, np.nan, 28, 22],
        'Score': [85, 92, 78, 88, 95]}

df = pd.DataFrame(data)

# NaN-Werte zuerst
df_na_first = df.sort_values(by='Age', na_position='first')
print("NaN zuerst:n", df_na_first)

# NaN-Werte zuletzt
df_na_last = df.sort_values(by='Age', na_position='last')
print("nNaN zuletzt:n", df_na_last)

Sortieren nach mehreren Spalten

Dies lässt sich leicht erweitern, um nach mehreren Spalten zu sortieren, indem man dem Argument by eine Liste übergibt. Pandas sortiert zuerst nach der ersten Spalte in der Liste, dann nach der zweiten usw.


# Sortieren nach Alter (aufsteigend) dann nach Punktzahl (absteigend)
df_multi = df.sort_values(by=['Age', 'Score'], ascending=[True, False])
print("nSortieren nach mehreren Spalten:n", df_multi)

Direktes Sortieren (In-Place)

Standardmäßig gibt sort_values() ein *neues* sortiertes DataFrame zurück. Um das DataFrame direkt zu ändern, setzen Sie das Argument inplace auf True. Beachten Sie, dass dies das ursprüngliche DataFrame verändert, seien Sie also vorsichtig.


df.sort_values(by='Age', inplace=True)
print("nDirektes Sortieren:n", df)

Durch das Verständnis und die Nutzung dieser Argumente können Sie Ihre Pandas DataFrames effizient und präzise sortieren und so Ihren Datenanalyse-Workflow optimieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert