Explorative Datenanalyse (EDA) mit Python: Ein ausführlicher Leitfaden mit wichtigen Funktionen
In der Datenanalyse ist es entscheidend, die Struktur und Verteilung Ihres Datensatzes zu verstehen, bevor Interpretationen oder Modelle angewendet werden. Die explorative Datenanalyse (EDA) bietet dieses Verständnis durch eine systematische Erkundung. Hier konzentrieren wir uns darauf, Python-Funktionen zu verwenden, um Einblicke zu gewinnen, ohne stark auf grafische Methoden angewiesen zu sein, obwohl wir auch einige Visualisierungstechniken ansprechen werden.
Schritt 1: Laden und Untersuchen des Datensatzes
Wir beginnen mit dem Titanic-Datensatz, einem beliebten Datensatz in der Datenanalyse, und richten die Umgebung ein, indem wir die erforderlichen Bibliotheken importieren.
import pandas as pd
import numpy as np
import seaborn as sns
# Lade die Daten
df = pd.read_csv('titanic.csv')
# Vorschau der Daten
df.head()
Dieser Code lädt und zeigt die ersten Zeilen des Titanic-Datensatzes an und gibt Ihnen einen schnellen Überblick über dessen Struktur.
Schritt 2: Grundlegende Informationen über den Datensatz
Es ist wichtig, sich mit der Struktur des Datensatzes vertraut zu machen. Die Funktionen info()
und describe()
bieten eine Zusammenfassung auf hoher Ebene der Daten.
# Grundlegende Informationen zum Datensatz
df.info()
# Beschreibende Statistik
df.describe()
Die info()
-Funktion zeigt Datentypen und fehlende Werte an, während describe()
grundlegende Statistiken für numerische Spalten liefert.
Schritt 3: Identifizieren von doppelten Einträgen
Doppelte Daten können Ergebnisse verzerren, daher ist es gut, doppelte Zeilen frühzeitig zu identifizieren.
# Zähle doppelte Zeilen
df.duplicated().sum()
Ein Ergebnis von 0
zeigt an, dass keine Duplikate vorhanden sind, was die Datenintegrität gewährleistet.
Schritt 4: Untersuchen von eindeutigen Werten
Das Verständnis der Wertebereiche innerhalb kategorialer Spalten ist hilfreich, insbesondere für die Merkmalsanalyse.
# Eindeutige Werte in bestimmten Spalten
print(df['Pclass'].unique())
print(df['Survived'].unique())
print(df['Sex'].unique())
Dies gibt die eindeutigen Werte in jeder angegebenen Spalte zurück.
Schritt 5: Visualisierung der Häufigkeit eindeutiger Werte
Visualisierungen wie Zählplots erleichtern das Erkennen der Häufigkeit von Kategorien innerhalb einer Spalte.
# Zählplot für eindeutige Werte in 'Pclass'
sns.countplot(x='Pclass', data=df)
Dieser Plot zeigt die Verteilung der Werte in der Pclass
-Spalte.
Schritt 6: Erkennung fehlender Werte
Fehlende Werte können die Analysequalität beeinträchtigen. Die Funktion isnull().sum()
hilft, Spalten mit Null-Einträgen zu identifizieren.
# Überprüfen auf fehlende Werte
df.isnull().sum()
Dies zeigt, dass in ‚Age‘ und ‚Cabin‘ fehlende Werte vorhanden sind, die für eine gründliche Analyse berücksichtigt werden müssen.
Schritt 7: Umgang mit fehlenden Daten
Eine Möglichkeit, fehlende Werte zu beheben, besteht darin, sie durch einen bestimmten Wert wie 0
zu ersetzen.
# Ersetze fehlende Werte durch 0
df.replace(np.nan, 0, inplace=True)
# Änderungen überprüfen
df.isnull().sum()
Dies ersetzt alle Nullwerte durch 0
, obwohl andere Methoden wie der Mittelwert je nach Kontext vorzuziehen sein können.
Schritt 8: Überprüfung der Datentypen
Das Verständnis der Datentypen ist entscheidend, da es Ihnen hilft, geeignete Analysetechniken für jedes Merkmal auszuwählen.
# Überprüfen der Datentypen jeder Spalte
df.dtypes
Diese Funktion zeigt den Datentyp jeder Spalte an und hilft, numerische von kategorialen Daten zu unterscheiden.
Schritt 9: Filtern des Datensatzes
Das Filtern ermöglicht es Ihnen, Teilmengen von Daten basierend auf bestimmten Kriterien zu analysieren.
# Filter für Passagiere der ersten Klasse
df[df['Pclass'] == 1].head()
Dieser Code gibt Zeilen zurück, in denen Passagiere der ersten Klasse angehören.
Schritt 10: Boxplot für eine schnelle Visualisierung
Boxplots sind eine effektive Möglichkeit, die Verteilung und Ausreißer in numerischen Daten zu untersuchen.
# Boxplot für die 'Fare'-Spalte
df[['Fare']].boxplot()
Dies gibt einen schnellen Überblick über die Preisverteilung, einschließlich potenzieller Ausreißer.
Schritt 11: Korrelationsmatrix
Die Korrelationsmatrix quantifiziert Beziehungen zwischen numerischen Merkmalen. Sie können sie für ein intuitiveres Verständnis visualisieren.
# Korrelationsmatrix
df.corr()
# Korrelationsmatrix visualisieren
sns.heatmap(df.corr(), annot=True, cmap="coolwarm")
Positive Korrelationen nahe 1
zeigen starke Beziehungen an, während negative Werte nahe -1
inverse Beziehungen andeuten.
Fazit
Die explorative Datenanalyse ist ein grundlegender Bestandteil jedes Datenprojekts. Mit diesen Python-Funktionen können Sie ein umfassendes Verständnis Ihres Datensatzes gewinnen, was Ihnen hilft, fundierte Entscheidungen zu treffen, bevor Sie zu komplexeren Analysen übergehen. Die Kombination aus grafischen und nicht-grafischen Ansätzen bietet eine vollständige Perspektive auf Ihre Daten.
Viel Spaß beim Analysieren!