Course
Python Select Columns Tutorial
Um den gesamten Beispielcode in diesem Lernprogramm selbst auszuführen, kannst du eine DataLab-Arbeitsmappe erstellenkostenlos erstellen, auf der Python vorinstalliert ist und die alle Codebeispiele enthält.
Wenn du einen DataFrame hast und auf bestimmte Zeilen/Spalten aus diesem DataFrame zugreifen oder sie auswählen möchtest, kannst du eckige Klammern oder andere fortgeschrittene Methoden wie loc
und iloc
verwenden.
Spalten mit eckigen Klammern auswählen
Angenommen, du möchtest die Länderspalte aus dem brics
DataFrame auswählen. Dazu gibst du brics
ein und dann die Spaltenbezeichnung innerhalb der eckigen Klammern.
Auswählen einer Spalte
country capital area population
BR Brazil Brasilia 8.516 200.40
RU Russia Moscow 17.100 143.50
IN India New Dehli 3.286 1252.00
CH China Beijing 9.597 1357.00
SA South Africa Pretoria 1.221 52.98
brics["country"]
BR Brazil
RU Russia
IN India
CH China
SA South Africa
Name: country, dtype: object
Den Typ des Objekts prüfen
Überprüfen wir den Typ des Objekts, das mit der Typ-Funktion zurückgegeben wird.
type(brics["country"])
pandas.core.series.Series
Wie wir an der obigen Ausgabe sehen können, haben wir es hier mit einer pandas
Serie zu tun! Reihen kann man sich als ein eindimensionales Array vorstellen, das genauso wie ein DataFrame beschriftet werden kann.
Wenn du Daten auswählen und in einem DataFrame speichern willst, musst du doppelte eckige Klammern verwenden:
brics[["country"]]
BR Brazil
RU Russia
IN India
CH China
SA South Africa
Wenn wir den Typ dieser Ausgabe überprüfen, ist es ein DataFrame! Allerdings mit nur einer Spalte.
type(brics[["country"]])
pandas.core.frame.DataFrame
Auswählen mehrerer Spalten
Du kannst diesen Aufruf erweitern, um zwei Spalten auszuwählen. Versuchen wir, country
und capital
auszuwählen.
brics[["country", "capital"]]
country capital
BR Brazil Brasilia
RU Russia Moscow
IN India New Dehli
CH China Beijing
SA South Africa Pretoria
Wenn du dir das genau ansiehst, fügst du eine Liste mit Spaltenbeschriftungen in einen anderen Satz eckiger Klammern ein und hast am Ende einen Sub-DataFrame, der nur die Spalten country
und capital
enthält.
Python von Grund auf lernen
Zeilen mit eckigen Klammern auswählen
Eckige Klammern können mehr als nur Spalten auswählen. Du kannst sie auch verwenden, um Zeilen oder Beobachtungen aus einem DataFrame abzurufen.
Beispiel
Du kannst Zeilen nur dann mit eckigen Klammern auswählen, wenn du einen Abschnitt angibst, wie 0:4
. Außerdem verwendest du hier die Integer-Indizes der Zeilen, nicht die Zeilenbeschriftungen!
Um die zweite, dritte und vierte Zeile von brics
DataFrame zu erhalten, verwenden wir die Slice 1 bis 4. Denke daran, dass das Ende des Slice exklusiv ist und der Index bei Null beginnt.
brics[1:4]
country capital area population
RU Russia Moscow 17.100 143.50
IN India New Dehli 3.286 1252.00
CH China Beijing 9.597 1357.00
Diese eckigen Klammern funktionieren zwar, aber sie bieten nur eine begrenzte Funktionalität. Im Idealfall wollen wir etwas ähnliches wie 2D Numpy
Arrays, wo du auch eckige Klammern verwendest. Der Index oder Abschnitt vor dem Komma bezieht sich auf die Zeilen und der Abschnitt nach dem Komma auf die Spalten.
Beispiel für ein 2D Numpy
Array:
my_array[rows, columns]
Wenn du etwas Ähnliches mit pandas
machen willst, musst du dir die Funktionen loc
und iloc
ansehen.
loc
: Label-basiertiloc
: Ganzzahlige Position-basiert
loc
Funktion
loc
ist eine Technik, mit der du Teile deiner Daten anhand von Beschriftungen auswählen kannst. Schauen wir uns den brics DataFrame an und holen wir uns die Zeilen für Russland.
Dazu setzt du das gewünschte Label in eckige Klammern hinter loc
.
Zeilen auswählen
brics.loc["RU"]
country Russia
capital Moscow
area 17.1
population 143.5
Name: RU, dtype: object
Wir erhalten eine Reihe von pandas
, die alle Informationen zu den Zeilen enthält; ungünstigerweise werden sie jedoch in verschiedenen Zeilen angezeigt. Um einen DataFrame zu erhalten, müssen wir den RU
Stachel in ein weiteres Paar Klammern setzen. Wir können auch mehrere Zeilen gleichzeitig auswählen. Angenommen, du möchtest auch Indien und China einbeziehen. Füge diese Zeilenbeschriftungen einfach zur Liste hinzu.
brics.loc[["RU", "IN", "CH"]]
country capital area population
RU Russia Moscow 17.100 143.50
IN India New Dehli 3.286 1252.00
CH China Beijing 9.597 1357.00
Der Unterschied zwischen der Verwendung von loc
und einfachen eckigen Klammern ist, dass du die Auswahl mit einem Komma und einer Angabe der interessierenden Spalten erweitern kannst.
Auswählen von Zeilen und Spalten
Erweitern wir den vorherigen Aufruf, um nur die Spalten country
und capital
einzubeziehen. Wir fügen ein Komma hinzu und listen die Spaltenbezeichnungen auf, die wir behalten wollen. Die Kreuzung wird zurückgegeben.
brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
country capital
RU Russia Moscow
IN India New Dehli
CH China Beijing
Du kannst auch loc
verwenden, um alle Zeilen, aber nur eine bestimmte Anzahl von Spalten auszuwählen. Ersetze einfach die erste Liste, die die Zeilenbezeichnungen angibt, durch einen Doppelpunkt. Ein Stück, das von Anfang bis Ende geht. Dieses Mal erhalten wir alle Zeilen zurück, aber nur zwei Spalten.
Alle Zeilen und bestimmte Spalten auswählen
brics.loc[:, ["country", "capital"]]
country capital
BR Brazil Brasilia
RU Russia Moscow
IN India New Dehli
CH China Beijing
SA South Africa Pretoria
iloc
Funktion
Mit der Funktion iloc
kannst du pandas
DataFrames anhand ihrer Position oder ihres Indexes unterteilen.
Zeilen auswählen
Verwenden wir dieselben Daten und ähnliche Beispiele wie bei loc
. Beginnen wir mit der Reihe für Russland.
brics.iloc[[1]]
country capital area population
RU Russia Moscow 17.100 143.50
Um die Reihen für Russland, Indien und China zu bekommen. Du kannst jetzt eine Liste mit dem Index 1, 2, 3
verwenden.
brics.iloc[[1, 2, 3]]
country capital area population
RU Russia Moscow 17.100 143.50
IN India New Dehli 3.286 1252.00
CH China Beijing 9.597 1357.00
Auswählen von Zeilen und Spalten
Ähnlich wie bei loc
können wir auch mit iloc
sowohl Zeilen als auch Spalten auswählen. Hier wählen wir die Zeilen für Russland, Indien und China und die Spalten country
und capital
aus.
brics.iloc[[1, 2, 3], [0, 1]]
country capital
RU Russia Moscow
IN India New Dehli
CH China Beijing
Alle Zeilen und bestimmte Spalten auswählen
Wenn du alle Zeilen auswählen möchtest, aber nur die Spalten country
und capital
behalten willst, kannst du das tun:
brics.loc[:, [0, 1]]
country capital
BR Brazil Brasilia
RU Russia Moscow
IN India New Dehli
CH China Beijing
SA South Africa Pretoria
loc
und iloc
sind sich ziemlich ähnlich. Der einzige Unterschied ist, wie du dich auf Spalten und Zeilen beziehst.
Interaktives Beispiel zur Auswahl einer Teilmenge von Daten
Im folgenden Beispiel werden die Fahrzeugdaten aus einer CSV-Datei als Pandas DataFrame importiert. Um nur die cars_per_cap column
von Autos auszuwählen, kannst du verwenden:
cars['cars_per_cap']
cars[['cars_per_cap']]
Die Version mit einer Klammer ergibt eine Pandas-Reihe, die Version mit zwei Klammern einen Pandas-DataFrame.
- Du verwendest einzelne eckige Klammern, um die Spalte
country
voncars
als Pandas-Reihe auszudrucken. - Verwende dann doppelte eckige Klammern, um die Spalte
country
voncars
als Pandas DataFrame auszudrucken. - Verwende schließlich die doppelten eckigen Klammern, um einen DataFrame mit den Spalten
country
unddrives_right
voncars
auszudrucken, und zwar in dieser Reihenfolge.
# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)
# Print out country column as Pandas Series
print(cars['country'])
# Print out country column as Pandas DataFrame
print(cars[['country']])
# Print out DataFrame with country and drives_right columns
print(cars[['country', 'drives_right']])
Wenn wir den obigen Code ausführen, erhalten wir das folgende Ergebnis:
US United States
AUS Australia
JPN Japan
IN India
RU Russia
MOR Morocco
EG Egypt
Name: country, dtype: object
country
US United States
AUS Australia
JPN Japan
IN India
RU Russia
MOR Morocco
EG Egypt
country drives_right
US United States True
AUS Australia False
JPN Japan False
IN India False
RU Russia True
MOR Morocco True
EG Egypt True
Um mehr über Pandas zu erfahren, schau dir dieses Video aus unserem Kurs Intermediate Python an.
Dieser Inhalt stammt aus dem DataCamp-Kurs Python für Fortgeschrittene von Hugo Bowne-Anderson.
Python-Kurse
Course
Introduction to Python
Course
Reshaping Data with pandas
Der Blog