Ein- und Ausgabe
Die Funktionen zur Ein- und Ausgabe von Daten in pandas
sind umfangreich aber systematisch organisiert. Um beispielsweise eine .csv
Datei einzulesen und in einer Variable zu speichern verwendet man die Funktion read_csv
:
import pandas as pd
df = pd.read_csv("../data/Library_Usage.csv")
df.head()
Um einen eingelesenen Datensatz beispielsweise im .json
Textformat zu speichern verwendet man die Funktion to_json
:
df.to_json("../data/Library_Usage.json")
- Manche Funktion aus dem
pandas
Paket sind statische Funktionen: Sie sind an kein konkretes Objekt gebunden, sondern werden über den Bibliotheksnamenpd
aufgerufen. Beispiele:pd.read_csv
,pd.to_numeric
,pd.crosstab
. - Andere Funktionen sind an ein bestimmtes Objekt, welches mit einer Variable referenziert wird, gebunden. In der Regel ist dies ein
DataFrame
oder eineSeries
. Beispiele:df.to_csv
,df.corr
,df.head
,x.mean
. - Mache Dich mit dem Unterschied vertraut: Was bedeuten
pd
unddf
undx
in den Beispielen?
Exkurs: Einlesen von Daten
Die Festplatte des Computers dient zur persistenten Speicherung von Dateien. Auch wenn der Strom weg ist, bleiben diese darauf erhalten. Die hohe Speicherfähigkeit hat ihren Preis: Die Zugriffszeiten, d.h. die Zeit die die Festplatte benötigt um z.B. Zeilen einer Textdatei zu lesen und die Werte an den Prozessor zu übergeben, sind hoch.
Deswegen gibt es neben dem Festplattenspeicher auch noch den Arbeitsspeicher (RAM). Dessen Zugriffszeiten sind wesentlich schneller, die Daten sind jedoch nicht persistent. Wenn Du z.B. eine Tabelle mit Excel öffnest, dann werden die Daten von der Festplatte in den Arbeitsspeicher geladen. Das gleiche, nur ohne graphische Oberfläche, passiert, wenn Du Daten mit dem pandas
Paket einliest.
Da normalerweise der Datensatz komplett in den Arbeitsspeicher geladen werden muss, können prinzipiell nicht beliebig große Datenmengen bearbeitet werden.
2.3 Exkurs: Datenrundreise (30 Min)
- Informiere Dich hier über die verschiedenen Funktionen zur Ein- und Ausgabe.
- Lies den Datensatz
"../data/Library_Usage_Small.csv"
ein (Download hier). Er enthält nur 10 Zeilen des originalen Datensatzes (aus Performancegründen). - Speichere den
DataFrame
als.json
ab. - Lies die
.json
ein und speichere denDataFrame
als.html
Tabelle ab (Die.html
Datei lässt sich auch mit einem Browser öffnen). - Lies dann die
.html
Datei ein (Achtung:read_html
gibt eine Liste vonDataFrame
s zurück!) und speichere denDataFrame
als.xlsx
Datei ab (Die.xlsx
Datei lässt sich auch mit Excel öffnen). - Lies nun die
.xlsx
Datei ein und speichere denDataFrame
wieder als.csv
ab. Achte darauf, den ursprünglichen originalen Datensatz nicht zu überschreiben. - Vergleiche Sie die originale
.csv
Version mit der Version, nach der Datenrundreise. Ist alles gleich geblieben?
2.4 Exkurs: Arbeitsspeicher (30 Min)
- Finde heraus, wie viel freier Arbeitsspeicher Dein Computer hat (Das Betriebssystem und Hintergrundprogramme verbrauchen auch RAM).
- Wie viele
int64
Werte, also Zahlen, die 8 Byte (=64 Bit) Speicher benötigen, kannst Du damit theoretisch in den Arbeitsspeicher laden? Tip: Nutze Google zum Umrechnen. - Wie viele Beobachtungen kann eine Tabelle mit 100 numerischen Variablen damit maximal theoretisch haben, damit Du diese noch bearbeiten kannst?
- Nutze die Funktion
df.memory_usage()
um Dir den tatsächlich benötigten Speicher einesDataFrames
oder einerSeries
anzeigen zu lassen. Mit dem Funktionsargumentdeep=True
wird der Wert genau ermittelt und nicht nur geschätzt.