Direkt zum Inhalt
HeimAnleitungenPython

pandas read csv() Tutorial: Daten importieren

Das Importieren von Daten ist der erste Schritt in jedem Data Science-Projekt. Erfahre, warum die Datenwissenschaftler von heute die Funktion read_csv() von Pandas bevorzugen.
Aktualisierte 11. Sept. 2024  · 9 Min. lesen

pandas ist eine weit verbreitete Python-Bibliothek für Data Science, Analyse und maschinelles Lernen, die eine flexible und intuitive Möglichkeit bietet, Datensätze aller Größen zu verarbeiten. Eine der wichtigsten Funktionen von Pandas sind die Werkzeuge, die es zum Lesen und Schreiben von Daten bereitstellt. Für Daten, die in einem Tabellenformat vorliegen und als CSV-Datei gespeichert sind, kannst du Pandas verwenden, um sie mit der Funktion read_csv() in den Speicher zu lesen, die einen Pandas Dataframe zurückgibt. Aber es gibt auch noch andere Funktionen. Du kannst Pandas zum Beispiel verwenden, um Zusammenführungen, Umformungen, Verknüpfungen und Verkettungen durchzuführen. 

In diesem Artikel lernst du die Funktion read_csv() kennen und erfährst, wie du die Parameter ändern kannst, um die Ausgabe anzupassen, die du nach der Ausführung der Funktion erhältst. Wir werden auch die verschiedenen Methoden behandeln, die einem Pandas Dataframe-Objekt zur Verfügung stehen. Dazu gehört auch, wie du einen Pandas Dataframe in eine CSV-Datei schreibst und wie du mit verschiedenen Methoden und Attributen schnell mehr über deine Daten erfährst.  

Übe Pandas-Funktionen mit praktischen Übungen aus unserem Python-Kurs für Fortgeschrittene.

Hinweis: Schau dir diese DataLab-Arbeitsmappe an, um den Code nachzuvollziehen. 

Importieren einer CSV-Datei mit der Funktion read_csv()

Bevor du eine CSV-Datei in einen Pandas-Datenframe einliest, solltest du wissen, was die Daten enthalten. Es ist daher empfehlenswert, die Datei zu überfliegen, bevor du versuchst, sie in den Speicher zu laden: So kannst du besser erkennen, welche Spalten benötigt werden und welche du weglassen kannst.

Lass uns einen Code schreiben, um eine Datei mit read_csv() zu importieren. Dann können wir darüber reden, was vor sich geht und wie wir die Ausgabe anpassen können, die wir beim Lesen der Daten in den Speicher erhalten.

import pandas as pd

# Read the CSV file
airbnb_data = pd.read_csv("data/listings_austin.csv")

# View the first 5 rows
airbnb_data.head()

Pandas Anfangsdaten lesen

Alles, was im obigen Code passiert ist, ist, dass wir haben:

  1. Importiere die Pandas-Bibliothek in unsere Umgebung
  2. Übergib den Dateipfad an read_csv, um die Daten als Pandas Dataframe in den Speicher zu lesen.
  3. Druckt die ersten fünf Zeilen des Datenrahmens.

Aber die Funktion read_csv() hat noch viel mehr zu bieten.

Python von Grund auf lernen

Beherrsche Python für Data Science und erwerbe gefragte Fähigkeiten.
Kostenloses Lernen Beginnen

Eine Spalte als Index festlegen

Standardmäßig fügt Pandas dem Datenrahmen, der aus der in den Speicher geladenen CSV-Datei zurückgegeben wird, einen Anfangsindex hinzu. Du kannst jedoch explizit angeben, welche Spalte als Index für die Funktion read_csv dienen soll, indem du den Parameter index_col setzt.

Beachte, dass der Wert, den du index_col zuweist, entweder als String-Name, Spaltenindex oder als eine Folge von String-Namen oder Spaltenindizes angegeben werden kann. Wenn du dem Parameter eine Sequenz zuweist, entsteht ein MultiIndex (eine Gruppierung der Daten nach mehreren Ebenen).

Wir lesen die Daten erneut ein und setzen die Spalte id als Index.

# Setting the id column as the index
airbnb_data = pd.read_csv("data/listings_austin.csv", index_col="id")
# airbnb_data = pd.read_csv("data/listings_austing.csv", index_col=0)

# Preview first 5 rows
airbnb_data.head()

id-Index

Bestimmte Spalten zum Lesen in den Speicher auswählen

Was ist, wenn du nur bestimmte Spalten in den Speicher einlesen willst, weil nicht alle wichtig sind? Das ist ein häufiges Szenario, das in der realen Welt vorkommt. Mit der Funktion read_csv kannst du nur die Spalten auswählen, die du nach dem Laden der Datei benötigst. Das bedeutet jedoch, dass du vor dem Laden der Daten wissen musst, welche Spalten du benötigst, wenn du diesen Vorgang innerhalb der Funktion read_csv durchführen möchtest.

Wenn du die benötigten Spalten kennst, hast du Glück: Du kannst Zeit und Speicherplatz sparen, indem du ein listenähnliches Objekt an den Parameter usecols der Funktion read_csv übergibst.

# Defining the columns to read
usecols = ["id", "name", "host_id", "neighbourhood", "room_type", "price", "minimum_nights"]

# Read data with subset of columns
airbnb_data = pd.read_csv("data/listings_austin.csv", index_col="id", usecols=usecols)

# Preview first 5 rows
airbnb_data.head()

read_csv_usecols

Wir haben kaum an der Oberfläche der verschiedenen Möglichkeiten gekratzt, die Ausgabe der read_csv-Funktion anzupassen, aber mehr in die Tiefe zu gehen, wäre sicherlich eine Informationsflut.

Wir empfehlen dir, den Spickzettel zum Importieren von Daten in Python als Lesezeichen zu speichern und die Einführung in das Importieren von Daten in Python zu lesen, um mehr zu erfahren. Wenn dir das zu einfach ist, gibt es auch den interaktiven Kurs Importieren von Daten in Python.

Daten von einer URL lesen

Sobald du weißt, wie du eine CSV-Datei aus dem lokalen Speicher in den Speicher einlesen kannst, ist das Lesen von Daten aus anderen Quellen ein Kinderspiel. Es ist letztlich derselbe Prozess, nur dass du keinen Dateipfad mehr übergibst.

Angenommen, du willst Daten von einer bestimmten Webseite haben. Wie würdest du sie in den Speicher einlesen?

Wir werden den Iris-Datensatz aus dem UCI-Repository als Beispiel verwenden:

# Webpage URL
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

# Define the column names
col_names = ["sepal_length_in_cm",
            "sepal_width_in_cm",
            "petal_length_in_cm",
            "petal_width_in_cm",
            "class"]

# Read data from URL
iris_data = pd.read_csv(url, names=col_names)

iris_data.head() 

Iris-Datensatz

Voila!

Du hast vielleicht bemerkt, dass wir dem Parameter names in der Funktion read_csv eine Liste von Strings zugewiesen haben. So können wir die Spaltenüberschriften umbenennen, während wir die Daten in den Speicher einlesen.

Methoden und Attribute der DataFrame-Struktur

Das häufigste Objekt in der Pandas-Bibliothek ist mit Abstand das Dataframe-Objekt. Es handelt sich um eine zweidimensionale, beschriftete Datenstruktur, die aus Zeilen und Spalten besteht, die unterschiedliche Datentypen haben können (z. B. Fließkomma, numerisch, kategorisch usw.).

Vom Konzept her kannst du dir einen Pandas-Dataframe wie eine Tabellenkalkulation, eine SQL-Tabelle oder ein Wörterbuch mit Reihenobjekten vorstellen - je nachdem, womit du besser vertraut bist. Das Tolle am Pandas Dataframe ist, dass er mit vielen Methoden ausgestattet ist, die es dir leicht machen, dich so schnell wie möglich mit deinen Daten vertraut zu machen.

Eine dieser Methoden hast du bereits gesehen: iris_data.head() Sie zeigt die ersten n (Standard ist 5) Zeilen an. Die "entgegengesetzte" Methode von head() ist tail(), die die letzten n (standardmäßig 5) Zeilen des Datenrahmenobjekts anzeigt. Zum Beispiel:

iris_data.tail()

Kopf

Du kannst die Spaltennamen schnell herausfinden, indem du das Attribut columns deines Datenrahmenobjekts verwendest:

# Discover the column names
iris_data.columns

"""
Index(['sepal_length_in_cm', 'sepal_width_in_cm', 'petal_length_in_cm',
      'petal_width_in_cm', 'class'],
      dtype='object')
"""

Eine weitere wichtige Methode, die du für dein Dataframe-Objekt verwenden kannst, ist info(). Diese Methode gibt eine kurze Zusammenfassung des Datenrahmens aus, einschließlich Informationen über den Index, die Datentypen, die Spalten, die Nicht-Null-Werte und die Speichernutzung.

# Get summary information of the dataframe
iris_data.info()

"""
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
#   Column              Non-Null Count  Dtype 
---  ------              --------------  ----- 
0   sepal_length_in_cm  150 non-null    float64
1   sepal_width_in_cm   150 non-null    float64
2   petal_length_in_cm  150 non-null    float64
3   petal_width_in_cm   150 non-null    float64
4   class               150 non-null    object
dtypes: float64(4), object(1)
memory usage: 6.0+ KB
"""

DataFrame.describe() erstellt deskriptive Statistiken, die unter anderem die zentrale Tendenz, die Streuung und die Form der Verteilung des Datensatzes zusammenfassen. Wenn deine Daten fehlende Werte enthalten, musst du dir keine Sorgen machen: Sie werden in der deskriptiven Statistik nicht berücksichtigt.

Rufen wir die Methode describe für den Iris-Datensatz auf:

# Get descriptive statistics
iris_data.describe()

describe

Exportieren des DataFrame in eine CSV-Datei

Eine weitere Methode, die für Pandas Dataframe-Objekte verfügbar ist, ist to_csv(). Wenn du deine Daten bereinigt und vorverarbeitet hast, kann der nächste Schritt darin bestehen, den Datenrahmen in eine Datei zu exportieren - das ist ziemlich einfach:

# Export the file to the current working directory
iris_data.to_csv("cleaned_iris_data.csv")

Wenn du diesen Code ausführst, wird eine CSV-Datei im aktuellen Arbeitsverzeichnis mit dem Namen cleaned_iris_data.csv erstellt.

Aber was ist, wenn du ein anderes Trennzeichen verwenden möchtest, um den Anfang und das Ende einer Dateneinheit zu markieren, oder wenn du angeben möchtest, wie deine fehlenden Werte dargestellt werden sollen? Vielleicht willst du nicht, dass die Kopfzeilen in die Datei exportiert werden.

Du kannst die Parameter der Methode to_csv() an deine Anforderungen für die Daten, die du exportieren willst, anpassen.

Schauen wir uns ein paar Beispiele an, wie du die Ausgabe von to_csv() anpassen kannst:

  • Exportiere Daten in das aktuelle Arbeitsverzeichnis, aber mit einem Tabulator-Trennzeichen.
# Change the delimiter to a tab
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t")
  • Daten ohne den Index exportieren
# Export data without the index
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t")

# If you get UnicodeEncodeError use this... 
# iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", index=False, encoding='utf-8')
  • Ändere den Namen der fehlenden Werte (der Standard ist "")
# Replace missing values with "Unknown"
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", na_rep="Unknown")
  • Datenrahmen ohne Überschriften (Spaltennamen) in eine Datei exportieren
# Do not include headers when exporting the data
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", na_rep="Unknown", header=False)

Abschließende Gedanken

Fassen wir noch einmal zusammen, was wir in diesem Tutorium behandelt haben: Du hast gelernt, wie man

  • Importiere eine CSV-Datei mit der Funktion read_csv() aus der Pandas-Bibliothek.
  • Setze einen Spaltenindex, während du deine Daten in den Speicher liest.
  • Gib die Spalten in deinen Daten an, die die Funktion read_csv() zurückgeben soll.
  • Daten von einer URL lesen mit der pandas.read_csv()
  • Erfasse schnell Einblicke in deine Daten, indem du Methoden und Attribute für dein Dataframe-Objekt verwendest.
  • Ein Datenrahmenobjekt in eine CSV-Datei exportieren
  • Passe die Ausgabe der Exportdatei aus der Methode to_csv() an.

In diesem Tutorial haben wir uns ausschließlich auf den Import und Export von Daten aus der Perspektive einer CSV-Datei konzentriert; du hast jetzt ein gutes Gefühl dafür, wie nützlich Pandas beim Import und Export von CSV-Dateien ist. CSV ist eines der gebräuchlichsten Formate für die Datenspeicherung, aber es ist nicht das einzige. Es gibt verschiedene andere Dateiformate, die in der Datenwissenschaft verwendet werden, z.B. Parquet, JSON und Excel.

Im Internet gibt es viele nützliche, hochwertige Datensätze, auf die du zum Beispiel über APIs zugreifen kannst. Wenn du genauer wissen willst, wie du Daten in Python laden kannst, lernst du im DataCamp-Kurs Einführung in den Datenimport in Python die besten Methoden kennen.

Außerdem gibt es Tutorials zum Importieren von JSON- und HTML-Daten in Pandas und ein einsteigerfreundliches Tutorial zum ultimativen Pandas-Leitfaden. Schaue dir diese unbedingt an, um tiefer in das Pandas-Framework einzutauchen.

Lass dich für deine Traumrolle als Datenanalyst zertifizieren

Unsere Zertifizierungsprogramme helfen dir, dich von anderen abzuheben und potenziellen Arbeitgebern zu beweisen, dass deine Fähigkeiten für den Job geeignet sind.

Hol Dir Deine Zertifizierung
Timeline mobile.png
Themen

Erfahre mehr über Python und Pandas

Zertifizierung verfügbar

Course

Pandas Joins für Tabellenkalkulationsbenutzer

4 hr
3.7K
Lerne, wie du mit der Python-Bibliothek Pandas effektiv und effizient Datensätze im Tabellenformat zusammenführen kannst.
See DetailsRight Arrow
Start Course
Mehr anzeigenRight Arrow