Pandas loc[]: Daten aus DataFrames auswählen
Pandas DataFrame.loc[]
ist eine DataFrame-Eigenschaft in der Python-Pandas-Bibliothek, die dazu dient, Daten aus einem DataFrame basierend auf Bezeichnern (Labels) auszuwählen. So können Zeilen und Spalten eines DataFrames gezielt extrahiert werden.
- Flexibel: Hosting, das jedem Website-Traffic standhält
- Verlässlich: Inklusive 24/7-Support und persönlicher Beratung
- Sicher: Kostenloses SSL-Zertifikat, DDoS-Schutz und Backups
Syntax von Pandas loc[]
Man übergibt loc[]
als Parameter die gewünschte Labelauswahl. Ansonsten ist die Syntax sehr einfach:
DataFrame.loc[selection]
pythonBei Pandas loc[]
wird die Auswahl vorrangig basierend auf Labeln vorgenommen. Der übergebene Parameter kann daher ein einzelnes Label, eine Liste oder ein Slice von Labeln sein. Doch auch Boolesche Arrays können genutzt werden.
loc[]
vs. iloc[]
Während Pandas DataFrame.loc[]
Daten basierend auf Labels auswählt, wird das ähnlich klingende DataFrame.iloc verwendet, um Daten basierend auf Integer-basierten Positionen auszuwählen.
Folgendes Codebeispiel hilft zur Veranschaulichung der Unterschiede. Zunächst wird ein Pandas DataFrame erstellt:
import pandas as pd
data = {'Name': ['Anna', 'Bob', 'Chris'], 'Alter': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
pythonDer resultierende DataFrame sieht wie folgt aus:
Name Alter
0 Anna 23
1 Bob 35
2 Chris 30
Um nun „Anna“ aus dem DataFrame zu extrahieren, können sowohl Pandas loc[]
als auch iloc[]
genutzt werden. Das Ergebnis ist dasselbe, der Weg dahin unterscheidet sich aber:
# Mit loc nach Label
print(df.loc[0, 'Name']) # Ausgabe: 'Anna'
# Mit iloc nach Position
print(df.iloc[0, 0]) # Ausgabe: 'Anna'
pythonAnwendung von Pandas DataFrame.loc[]
Pandas loc[]
hilft Ihnen dabei, Teilmengen Ihres DataFrames zu extrahieren. Hierbei kann es sich um einzelne oder mehrere Zeilen bzw. Spalten handeln – mit loc[]
können verschiedene Anwendungsfälle umgesetzt werden.
Auswahl einer einzelnen Zeile
Im Folgenden wird ein Beispiel-DataFrame mit den folgenden Daten betrachtet:
import pandas as pd
data = {
'Name': ['Anna', 'Bob', 'Chris'],
'Alter': [23, 35, 30],
'Stadt': ['Berlin', 'Hamburg', 'München']
}
df = pd.DataFrame(data)
print(df)
pythonDer resultierende DataFrame sieht wie folgt aus:
Name Alter Stadt
0 Anna 23 Berlin
1 Bob 35 Hamburg
2 Chris 30 München
Um die Daten der Zeile mit dem Index 1 auszuwählen (entspricht Bob), kann Pandas loc[]
verwendet werden:
bob_data = df.loc[1]
print(bob_data)
pythonDas Resultat ist wie erwartet:
Name Bob
Alter 35
Stadt Hamburg
Name: 1, dtype: object
Auswahl mehrerer Spalten
Auch für die Auswahl einer Untermenge an Spalten eignet sich DataFrame.loc[]
. Folgender Code wählt die Spalten „Name“ und „Stadt“ für alle Zeilen aus:
name_stadt = df.loc[:, ['Name', 'Stadt']]
print(name_stadt)
pythonAls Ergebnis erhält man eine Untermenge des ursprünglichen DataFrames:
Name Stadt
0 Anna Berlin
1 Bob Hamburg
2 Chris München
Bedingte Auswahl
Mit Pandas loc[]
ist es ebenfalls möglich, Zeilen basierend auf einer Bedingung auswählen. Hierzu werden einfach Boolesche Vergleichsoperatoren eingesetzt. Im folgenden Code sollen zum Beispiel alle Personen, die älter als 25 Jahre sind, gefiltert werden:
older_than_25 = df.loc[df['Alter'] > 25]
print(older_than_25)
pythonDer obige Codeschnipsel liefert folgenden DataFrame, der nur noch die Daten derjenigen Personen enthält, die älter als 25 sind:
Name Alter Stadt
1 Bob 35 Hamburg
2 Chris 30 München