Grundlegende DataFrame-Inspektion
Verwenden Sie head(), tail(), info(), describe() und shape, um Inhalt und Struktur eines beliebigen DataFrames schnell zu erfassen.
Grundlegende DataFrame-Inspektion ist eine kostenlose Pandas & NumPy Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Pandas & NumPy Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Die ersten fünf Schritte mit jedem DataFrame
Wenn Sie einen neuen Datensatz laden, spart eine systematische Prüfsequenz viele Stunden beim Debugging. Das Pandas-Werkzeug dafür umfasst: head() für die ersten Zeilen, tail() für die letzten Zeilen, info() für Spaltentypen und Nullwerte, describe() für Statistiken und shape für die Dimensionen. Diese fünf Prüfungen dauern weniger als eine Minute und zeigen die meisten Probleme mit der Datenqualität sofort auf.
import pandas as pd
# Assume df is loaded from a CSV
print(df.shape) # (rows, cols)
df.head() # first 5 rows
df.info() # dtypes + non-null counts
df.describe() # statisticshead() und tail()
df.head(n) gibt die ersten n Zeilen (standardmäßig 5) als DataFrame zurück. df.tail(n) gibt die letzten n Zeilen zurück. Zusammen helfen die beiden Methoden Ihnen zu überprüfen, ob die Daten korrekt eingelesen wurden: ob die Spaltennamen in der Kopfzeile stehen, numerische Spalten Zahlen enthalten und Datumszeichenfolgen nicht falsch interpretiert wurden. Sie verändern die Daten nicht und geben neue DataFrames zurück.
import pandas as pd
df = pd.DataFrame({'a': range(20), 'b': range(20, 40)})
print(df.head(3))
# a b
# 0 0 20
# 1 1 21
# 2 2 22
print(df.tail(2))
# a b
# 18 18 38
# 19 19 39info(): Typen und Anzahl nicht leerer Werte
df.info() gibt eine kompakte Zusammenfassung aus: den Dtype des Index, die Anzahl der nicht leeren Werte pro Spalte, den Dtype jeder Spalte und den gesamten Speicherverbrauch. Spalten mit weniger nicht leeren Werten als der Gesamtzahl der Zeilen enthalten fehlende Daten. Der Dtype object steht häufig für eine Stringspalte (oder eine Spalte mit gemischten Typen), die vor der Analyse möglicherweise bereinigt werden muss.
import pandas as pd
import numpy as np
df = pd.DataFrame({'name': ['A', 'B', None],
'score': [80.0, np.nan, 90.0],
'grade': ['A', 'C', 'A']})
df.info()
# Column Non-Null Count Dtype
# name 2 non-null object
# score 2 non-null float64
# grade 3 non-null objectdescribe(): Statistische Zusammenfassung
df.describe() berechnet für alle numerischen Spalten die Anzahl, den Mittelwert, die Standardabweichung, das Minimum, das 25., 50. (Median) und 75. Perzentil sowie das Maximum. Übergeben Sie include='all', um zusätzlich object-Spalten (Strings) zusammenzufassen. Übergeben Sie include='object', um nur kategoriale Spalten zusammenzufassen. Die Ausgabe ist selbst ein DataFrame, sodass Sie sie speichern oder für einen Bericht formatieren können.
import pandas as pd
df = pd.DataFrame({'age': [25, 30, 35, 40], 'score': [88, 72, 91, 65]})
print(df.describe().round(1))
# age score
# count 4.0 4.0
# mean 32.5 79.0
# std 6.5 12.0shape, ndim und size
df.shape ist ein Tupel (nrows, ncols). df.ndim gibt für DataFrames immer 2 zurück. df.size ist die Gesamtzahl der Zellen. Verwenden Sie len(df) für die Anzahl der Zeilen (entspricht df.shape[0]). Dies sind die einfachsten Plausibilitätsprüfungen: Bestätigen Sie die erwartete Zeilenanzahl nach dem Laden und nach jedem Filterschritt.
import pandas as pd
df = pd.DataFrame({'x': range(100), 'y': range(100), 'z': range(100)})
print(df.shape) # (100, 3)
print(len(df)) # 100
print(df.size) # 300
print(df.ndim) # 2dtypes und select_dtypes()
df.dtypes gibt eine Series zurück, die jeden Spaltennamen seinem Dtype zuordnet. df.select_dtypes(include='number') gibt einen neuen DataFrame zurück, der nur numerische Spalten enthält. Das ist nützlich, um Korrelationen zu berechnen oder numerische Transformationen anzuwenden, ohne versehentlich auf Stringspalten zu arbeiten. Übergeben Sie exclude='object', um Textspalten auszuschließen.
import pandas as pd
df = pd.DataFrame({'a': [1,2], 'b': [1.0,2.0], 'c': ['x','y']})
print(df.dtypes)
# a int64
# b float64
# c object
numeric = df.select_dtypes(include='number')
print(numeric.columns.tolist()) # ['a', 'b']isnull() und Anzahl der Nullwerte
df.isnull().sum() gibt die Anzahl fehlender Werte pro Spalte an – die schnellste Möglichkeit, die bereinigungsbedürftigen Spalten zu finden. Teilen Sie durch len(df), um den Anteil der fehlenden Werte zu erhalten. Eine Spalte mit mehr als 50 % fehlenden Werten erfordert häufig eine besondere Behandlung: Entfernen Sie sie oder wenden Sie eine domänenspezifische Imputation an.
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, np.nan, 3], 'b': [np.nan, np.nan, 6]})
print(df.isnull().sum())
# a 1
# b 2
print((df.isnull().sum() / len(df)).round(2))
# a 0.33
# b 0.67value_counts() für eine DataFrame-Spalte
Der Aufruf von df['col'].value_counts() listet die Häufigkeit jedes eindeutigen Werts in dieser Spalte auf, nach Anzahl sortiert. Verwenden Sie normalize=True, um Prozentsätze zu erhalten. Mit dropna=False wird NaN ebenfalls als Kategorie gezählt. Dies ist die schnellste Möglichkeit, eine unausgewogene Verteilung oder unerwartete Werte in einer kategorialen Spalte zu erkennen.
import pandas as pd
df = pd.DataFrame({'status': ['active','inactive','active','active','banned']})
print(df['status'].value_counts())
# active 3
# inactive 1
# banned 1
print(df['status'].value_counts(normalize=True).round(2))Spalten- und Indexprüfung
df.columns.tolist() gibt eine einfache Python-Liste mit den Spaltennamen zurück – nützlich für die programmgesteuerte Verarbeitung oder Protokollierung. df.index zeigt die Zeilenlabels und deren Typ. Überprüfen Sie df.index.is_unique, um zu bestätigen, dass keine doppelten Zeilenlabels vorhanden sind. Das ist eine Voraussetzung für viele Merge-Operationen und Zeitreihenberechnungen.
import pandas as pd
df = pd.DataFrame({'a': [1,2,3]}, index=['x', 'y', 'z'])
print(df.columns.tolist()) # ['a']
print(df.index.tolist()) # ['x', 'y', 'z']
print(df.index.is_unique) # Truesample() für eine zufällige Prüfung
df.sample(n) gibt n zufällig ausgewählte Zeilen ohne Zurücklegen zurück. df.sample(frac=0.1) gibt 10 % der Zeilen zurück. Setzen Sie random_state=, um reproduzierbare Ergebnisse zu erhalten. Zufälliges Sampling eignet sich besser als head(), um Probleme in der Mitte eines großen Datensatzes zu entdecken, die in den ersten Zeilen möglicherweise nicht auftreten.
import pandas as pd
df = pd.DataFrame({'x': range(1000), 'y': range(1000)})
print(df.sample(3, random_state=42))
print(df.sample(frac=0.005, random_state=0)) # 0.5% of rowsmemory_usage() zur Planung des Speicherbedarfs
df.memory_usage(deep=True) gibt den von jeder Spalte belegten Speicher in Bytes zurück. deep=True erzwingt eine genaue Messung von Spalten mit dem Dtype object, deren Strings außerhalb des DataFrame-Puffers gespeichert sind. Addieren Sie die Werte, um den gesamten Speicherverbrauch zu erhalten. Verwenden Sie diese Methode vor und nach dem Downcasting von Dtypes, um zu bestätigen, dass Sie den Speicherverbrauch reduziert haben.
import pandas as pd
df = pd.DataFrame({'a': range(10000), 'b': [str(i) for i in range(10000)]})
usage = df.memory_usage(deep=True)
print(usage)
print('Total bytes:', usage.sum())Kurze Überprüfung
Testen Sie Ihr Verständnis der grundlegenden DataFrame-Inspektion aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie gelernt: Mit head() und tail() können Sie den Anfang und das Ende eines DataFrames visuell prüfen, info() zeigt Dtypes und die Anzahl fehlender Werte in einem einzigen Aufruf und describe() liefert statistische Zusammenfassungen für numerische Spalten. Als Nächstes laden wir Daten aus den gängigsten Dateiformaten – CSV, Excel und JSON – in DataFrames.
Häufig gestellte Fragen
Ist die Lektion „Grundlegende DataFrame-Inspektion“ kostenlos?
Ja — der vollständige Text von „Grundlegende DataFrame-Inspektion“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Pandas & NumPy Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Grundlegende DataFrame-Inspektion“?
Verwenden Sie head(), tail(), info(), describe() und shape, um Inhalt und Struktur eines beliebigen DataFrames schnell zu erfassen. Du übst Pandas & NumPy Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Pandas & NumPy Academy zu starten?
Keine Vorkenntnisse erforderlich. Pandas & NumPy Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Grundlegende DataFrame-Inspektion“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Pandas & NumPy Academy-Lektion Code schreiben und ausführen?
Ja. Jede Pandas & NumPy Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- DataFrames erstellen
- Spalten und Zeilen auswählen
- Spalten hinzufügen und entfernen
- Grundlegende DataFrame-Inspektion