Pandas Datenauswahl

PandasBeginner
Jetzt üben

Einführung

Willkommen zum Pandas Selecting Data Lab! Pandas ist eine leistungsstarke Bibliothek für Datenmanipulation und -analyse in Python. Eine der grundlegendsten Aufgaben in der Datenanalyse ist die Auswahl spezifischer Teilmengen Ihrer Daten. Ob Sie eine einzelne Spalte, einige bestimmte Zeilen oder einen komplexen Ausschnitt Ihres Datensatzes untersuchen müssen, Pandas bietet eine Vielzahl flexibler und effizienter Methoden, um diese Aufgabe zu erledigen.

In diesem Lab arbeiten Sie mit einem Beispieldatensatz von Studenteninformationen. Sie lernen, wie Sie:

  • Einzelne und mehrere Spalten mithilfe der Klammernotation auswählen.
  • Zeilen anhand ihrer Labels mit dem .loc-Accessor auswählen.
  • Zeilen anhand ihrer ganzzahligen Position mit dem .iloc-Accessor auswählen.
  • Zeilen- und Spaltenauswahl kombinieren, um präzise Datenausschnitte zu extrahieren.

Am Ende dieses Labs werden Sie ein solides Verständnis der Kerntechniken zur Datenauswahl in Pandas haben, die für jede datenbezogene Aufgabe unerlässlich sind.

Einzelne Spalte mit Klammernotation auswählen

In diesem Schritt lernen Sie die gängigste Methode, eine einzelne Spalte aus einem Pandas DataFrame auszuwählen. Dies geschieht mithilfe der Klammernotation [], ähnlich wie Sie auf einen Wert in einem Python-Dictionary zugreifen würden.

Zuerst müssen wir unsere Daten aus der Datei students.csv in einen DataFrame laden. Dann können wir eine Spalte auswählen, indem wir ihren Namen als String innerhalb der Klammern übergeben.

Bitte öffnen Sie die Datei main.py im Dateiexplorer auf der linken Seite und fügen Sie den folgenden Code hinzu.

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the 'name' column
name_column = df['name']

## Print the selected column
print(name_column)

Lassen Sie uns nun das Skript ausführen. Öffnen Sie ein Terminal in der WebIDE und führen Sie den folgenden Befehl aus:

python3 main.py

Sie sehen die Ausgabe, die ein Pandas Series-Objekt ist und alle Namen aus der Spalte 'name' enthält.

0      Alice
1        Bob
2    Charlie
3      David
4        Eve
Name: name, dtype: object

Wie Sie sehen können, gibt die Auswahl einer einzelnen Spalte eine Series zurück, die im Wesentlichen ein eindimensionales, beschriftetes Array ist.

Mehrere Spalten per Liste auswählen

In diesem Schritt erweitern wir die vorherige Technik, um mehrere Spalten gleichzeitig auszuwählen. Anstatt eines einzelnen Strings übergeben Sie hier eine Liste von Spaltennamen innerhalb der Auswahlklammern. Beachten Sie die Verwendung von doppelten Klammern [[]]: Die äußeren Klammern sind für die Auswahl selbst, und die inneren Klammern erstellen die Liste der Spalten.

Lassen Sie uns die Datei main.py ändern, um sowohl die Spalten name als auch score auszuwählen.

Aktualisieren Sie Ihre main.py mit dem folgenden Code:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the 'name' and 'score' columns
subset = df[['name', 'score']]

## Print the resulting subset DataFrame
print(subset)

Führen Sie das Skript nun erneut in Ihrem Terminal aus:

python3 main.py

Die Ausgabe ist ein neuer DataFrame, der nur die von Ihnen angegebenen Spalten enthält.

      name  score
0    Alice     85
1      Bob     92
2  Charlie     95
3    David     88
4      Eve     90

Im Gegensatz zur Auswahl einer einzelnen Spalte, die eine Series zurückgibt, gibt die Auswahl mehrerer Spalten einen neuen DataFrame zurück.

Zeilen nach Label mit loc auswählen

In diesem Schritt lernen Sie, wie Sie Daten anhand ihres Labels mit dem .loc-Accessor auswählen. Der .loc-Indexer ist primär labelbasiert, was bedeutet, dass Sie die Namen (oder Labels) des Index für Auswahlen verwenden. Standardmäßig weist Pandas beim Laden einer CSV-Datei ohne Angabe einer Indexspalte einen Standard-Integer-Index zu, der bei 0 beginnt. Diese Integer fungieren als Labels für die Zeilen.

Verwenden wir .loc, um die dritte Zeile unseres DataFrames auszuwählen, die das Index-Label 2 hat.

Aktualisieren Sie Ihre main.py-Datei mit dem folgenden Code:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the row with index label 2
charlie_data = df.loc[2]

## Print the selected row
print(charlie_data)

Führen Sie das Skript in Ihrem Terminal aus:

python3 main.py

Die Ausgabe ist eine Series, die alle Daten für die Zeile mit dem Index-Label 2 enthält.

name        Charlie
age              21
major     Mathematics
score            95
Name: 2, dtype: object

Dies zeigt die Daten für den Studenten "Charlie". Die Verwendung von .loc ist eine leistungsstarke Methode, um auf Zeilen zuzugreifen, wenn Sie deren Labels kennen.

Zeilen nach Integer-Position mit iloc auswählen

In diesem Schritt werden wir eine weitere Auswahlmethode untersuchen: .iloc. Der .iloc-Indexer basiert primär auf der Integer-Position. Er funktioniert genau wie das Slicing von Python-Listen, bei dem Sie Integer-Indizes verwenden, um auf Elemente zuzugreifen. Dies unterscheidet sich von .loc, das Labels verwendet. Obwohl unsere Standard-Index-Labels ebenfalls Integer sind, wird die Unterscheidung entscheidend, wenn Sie nicht-Integer-Labels haben.

Verwenden wir .iloc, um die allererste Zeile des DataFrames auszuwählen, die sich an der Integer-Position 0 befindet.

Aktualisieren Sie Ihre main.py-Datei mit dem folgenden Code:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select the first row (at integer position 0)
first_row = df.iloc[0]

## Print the selected row
print(first_row)

Führen Sie das Skript in Ihrem Terminal aus:

python3 main.py

Die Ausgabe ist eine Series, die die Daten für den ersten Studenten, "Alice", enthält.

name       Alice
age           20
major    Physics
score         85
Name: 0, dtype: object

Merken Sie sich den Hauptunterschied: .loc ist für Labels, .iloc ist für Integer-Positionen.

Zeilen und Spalten mit loc slicen

In diesem letzten Schritt kombinieren Sie das Gelernte, um leistungsfähigere Auswahlen durchzuführen. Sowohl .loc als auch .iloc können Zeilen und Spalten gleichzeitig mit der Syntax df.loc[row_selector, column_selector] auswählen.

Wir werden .loc verwenden, um einen Ausschnitt von Zeilen und einen Ausschnitt von Spalten auszuwählen. Ein wichtiges Merkmal von .loc ist, dass beim Slicing mit Labels (z. B. 1:3) das Endlabel (3) inklusive ist.

Wählen wir die Zeilen mit den Index-Labels 1 bis 3 und die Spalten von name bis major aus.

Aktualisieren Sie Ihre main.py-Datei mit dem folgenden Code:

import pandas as pd

## Load the CSV file into a DataFrame
df = pd.read_csv('students.csv')

## Select rows with index labels 1 through 3 (inclusive)
## and columns from 'name' to 'major' (inclusive)
data_slice = df.loc[1:3, 'name':'major']

## Print the resulting slice
print(data_slice)

Führen Sie das Skript in Ihrem Terminal aus:

python3 main.py

Die Ausgabe ist ein neuer DataFrame, der ein spezifischer "Slice" der Originaldaten ist.

      name  age           major
1      Bob   22  Computer Science
2  Charlie   21       Mathematics
3    David   23       Engineering

Diese Technik ist äußerst nützlich, um bestimmte Bereiche Ihres Datensatzes für die Analyse zu isolieren.

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss des Labs! Sie haben die grundlegenden Methoden zur Datenauswahl in Pandas erfolgreich erlernt.

In diesem Lab haben Sie geübt:

  • Eine einzelne Spalte mit der Klammernotation df['column'] auszuwählen, was eine Series zurückgibt.
  • Mehrere Spalten mit einer Liste in der Klammernotation df[['col1', 'col2']] auszuwählen, was einen DataFrame zurückgibt.
  • Zeilen anhand ihres Labels mit .loc auszuwählen, was für die labelbasierte Indizierung sehr leistungsfähig ist.
  • Zeilen anhand ihrer Integer-Position mit .iloc auszuwählen, was den Standard-Python-Slicing-Regeln folgt.
  • Zeilen- und Spaltenselektoren mit .loc zu kombinieren, um spezifische, zweidimensionale Ausschnitte Ihrer Daten zu extrahieren.

Die Beherrschung dieser Auswahltechniken ist ein entscheidender erster Schritt, um mit Pandas für die Datenanalyse und -manipulation vertraut zu werden. Sie können nun zuversichtlich auf jeden Teil Ihres DataFrames zugreifen, um ihn zu inspizieren, zu analysieren oder zu modifizieren.