Zum Inhalt
wannacode

Die erste Tabelle

Kurz gesagt: pd.read_csv lädt eine CSV-Datei in eine Tabelle (einen DataFrame), und head, shape, info und describe zeigen die Zeilen, die Größe, die Typen und die Kennzahlen, bevor du etwas berechnest.

Problem

„Wie viele Bestellungen haben wir?“

Der Chef schickt dir orders.csv und fragt, wie viele Bestellungen es sind und wie hoch der Durchschnitt ist. Die Versuchung: die Datei öffnen, mean() schreiben und eine Zahl zurückschicken.

Du weißt aber noch nicht, was in der Datei steht. Ist eine Zeile eine Bestellung oder eine Position einer Bestellung? Gibt es leere Zellen? Sind die Zahlen Zahlen oder Text wie „1,60 €“? Der Mittelwert der falschen Spalte liefert eine falsche Antwort, die völlig seriös aussieht.

Deshalb beginnt Analyse mit einem ersten Blick: was in der Tabelle steht, bevor du mit ihr rechnest.

Die Idee

Die Tabelle: read_csv

CSV ist eine Textdatei mit einer Tabelle: Die erste Zeile enthält die Spaltennamen, und jede weitere Zeile ist ein Datensatz, mit Kommas zwischen den Werten. Fast jedes System liefert so etwas: der Shop, die Bank, Excel.

pandas ist die Python-Bibliothek für Tabellen. pd.read_csv liest die Datei und gibt einen DataFrame zurück: eine Tabelle mit Spaltennamen und links einer Nummer für jede Zeile (das ist der Index). head() zeigt die ersten fünf Zeilen:

PythonDaten: die Tabellen des Shops

import pandas as pd ist die Gewohnheit aller: pandas schreibt man pd. Die Datei orders.csv liegt neben dem Code, zusammen mit den anderen Tabellen des Shops: products.csv, customers.csv, order_items.csv, categories.csv und reviews.csv.

Die letzte Zeile hat kein print, und trotzdem erscheint die Tabelle. So arbeitet ein Notebook (Jupyter), in dem Analysten schreiben: Der Wert der letzten Zeile wird von selbst angezeigt.

Die Idee

Wie viele und was: shape und info

shape ist ein Paar (Zeilen, Spalten). info() beschreibt jede Spalte: wie viele Werte sie hat und von welchem Typ:

PythonDaten: die Tabellen des Shops

Lies es von oben nach unten:

  • 25 Zeilen, 6 Spalten. Keine Spalte ist ganz leer.
  • category_id hat 24 Werte von 25: Ein Produkt hat keine Kategorie.
  • Die Typen: int64 sind ganze Zahlen, float64 Dezimalzahlen, str Text. Das Datum added_at ist Text: pandas erkennt ein Datum nicht von selbst. Dazu kommen wir noch.
1. Die Spalte category_id enthält ganze Zahlen (3, 4, 5 …). Warum liest pandas sie als float64?
Genauer, für Neugierige

Der Typ str ist neu in pandas 3 (2026). In älteren Versionen und in vielen Artikeln ist Text object. Die Bedeutung ist dieselbe: Die Spalte enthält Strings.

Die Idee

Die Zahlen in Kürze: describe

describe() fasst eine numerische Spalte zusammen: wie viele Werte, der Mittelwert (mean), die Streuung (std), der kleinste und der größte Wert und die drei Viertel (25 %, 50 %, 75 %):

PythonDaten: die Tabellen des Shops

Der mittlere Preis ist 7,04 €, und 50 % (der Median, der Preis in der Mitte) ist 2,80 €. Das ist ein großer Abstand: Ein paar teure Produkte (das Messerset für 39 €, die Pfanne für 24,90 €) ziehen den Mittelwert hoch. Sag dem Chef „unser Produkt kostet im Schnitt 7 €“, und er stellt sich einen anderen Shop vor.

Ob man den Mittelwert oder den Median nimmt, gehört ins Statistikmodul. Vorerst gilt die Regel: Schau dir beide an.

Sieh es dir an

Welches Produkt keine Kategorie hat

info() hat gesagt, dass eine Kategorie fehlt. Hier ist das Produkt:

PythonDaten: die Tabellen des Shops

Die Geschenkkarte ist weder Lebensmittel noch Haushalt. Die Lücke ist echte Information, kein Fehler in der Datei. Ihr Bestand ist 999: ein Platzhalter, der „unbegrenzt“ bedeutet. Zähl den Bestand im Lager zusammen, und er verfälscht das Ergebnis.

Das bringt der erste Blick: Vor der ersten Summe weißt du, was nicht ist, was es scheint.

Probier es aus

Die Bestellpositionen

Wie viele Zeilen hat order_items.csv, und wie viele Stück eines Produkts stehen im Durchschnitt auf einer Position? Lege sie in rows und avg_qty ab.

PythonDaten: die Tabellen des Shops

Übung

Die neuesten Bestellungen

head() hat ein Geschwister: tail() zeigt die letzten Zeilen. Beide nehmen die gewünschte Zahl der Zeilen: head(10).

Die Bestelldatei ist nach Datum sortiert. Lege die letzten 4 Bestellungen in latest ab.

PythonDaten: die Tabellen des Shops
Genauer, für Neugierige

Eine Datei, die aus Excel in vielen europäischen Sprachen exportiert wurde, nutzt Semikolons zwischen den Werten und ein Komma in den Zahlen: 1,60. Dann heißt es pd.read_csv('file.csv', sep=';', decimal=','). Text aus alten Programmen liegt manchmal in einer regionalen Kodierung wie Windows-1251: encoding='cp1251'. Ein Excel-Blatt liest man direkt mit pd.read_excel, eine Datenbanktabelle mit pd.read_sql (siehe den Kurs Datenbanken und SQL).

Test

Teste dich

1. Was liefert orders.shape für eine Tabelle mit 60 Zeilen und 4 Spalten?
2. Der Mittelwert der Produktpreise ist 7,04 € und der Median 2,80 €. Was sagt dir das?
3. Welche Methode sagt dir, wie viele Werte in jeder Spalte fehlen und welchen Typ sie hat?
4. Die letzte Zeile des Codes ist orders.head(), ohne print. Was siehst du?

Erstellt von Ivo Gergov im Rahmen der Kampagne von Evo Tech für zugängliche Programmierausbildung ·