Python
df.mean beherrschen: Ein Leitfaden für Anfänger zum Berechnen von Mittelwerten

df.mean beherrschen: Ein Leitfaden für Anfänger zum Berechnen von Mittelwerten

MoeNagy Dev

Definition des Mittelwerts im Zusammenhang mit Datenframes

Der Mittelwert, auch bekannt als Durchschnitt, ist ein weit verbreitetes Maß für die zentrale Tendenz in der Datenanalyse. Im Zusammenhang mit Datenframes repräsentiert der Mittelwert den Durchschnittswert einer bestimmten Spalte oder einer bestimmten Gruppe von Spalten. Er wird berechnet, indem alle Werte in einer Spalte summiert und das Ergebnis durch die Anzahl der nicht fehlenden Werte geteilt wird.

Berechnung des Mittelwerts eines Datenframes

Berechnung des Mittelwerts einer einzelnen Spalte

Um den Mittelwert einer einzelnen Spalte in einem Datenframe zu berechnen, können Sie die Funktion mean() verwenden. Hier ist ein Beispiel:

import pandas as pd
 
# Erstellen Sie einen Beispieldatenframe
data = {'Age': [25, 32, 41, 28, 35],
        'Salary': [50000, 60000, 70000, 55000, 65000]}
df = pd.DataFrame(data)
 
# Berechnen des Mittelwerts der Spalte 'Age'
mean_age = df['Age'].mean()
print(f"Das durchschnittliche Alter beträgt: {mean_age}")

Ausgabe:

Das durchschnittliche Alter beträgt: 32.2

Berechnung des Mittelwerts mehrerer Spalten

Sie können auch den Mittelwert mehrerer Spalten in einem Datenframe berechnen. Dazu können Sie einer Liste von Spaltennamen an die Funktion mean() übergeben:

# Berechnen des Mittelwerts der Spalten 'Age' und 'Salary'
mean_values = df[['Age', 'Salary']].mean()
print(mean_values)

Ausgabe:

Age     32.2
Salary  60000.0
dtype: float64

Umgang mit fehlenden Werten bei der Berechnung des Mittelwerts

Wenn Ihr Datenframe fehlende Werte enthält (durch NaN oder None dargestellt), schließt die Funktion mean() automatisch diese Werte von der Berechnung aus. Sie können jedoch auch angeben, wie fehlende Werte behandelt werden sollen, indem Sie den Parameter skipna verwenden:

# Erstellen Sie einen Datenframe mit fehlenden Werten
data = {'Age': [25, 32, 41, 28, 35, None],
        'Salary': [50000, 60000, 70000, 55000, 65000, None]}
df = pd.DataFrame(data)
 
# Berechnen des Mittelwerts unter Berücksichtigung fehlender Werte
mean_age = df['Age'].mean(skipna=False)
print(f"Das durchschnittliche Alter (einschließlich fehlender Werte): {mean_age}")
 
# Berechnen des Mittelwerts unter Ausschluss fehlender Werte
mean_age = df['Age'].mean(skipna=True)
print(f"Das durchschnittliche Alter (ohne fehlende Werte): {mean_age}")

Ausgabe:

Das durchschnittliche Alter (einschließlich fehlender Werte): nan
Das durchschnittliche Alter (ohne fehlende Werte): 32.2

Anwendung des Mittelwerts auf verschiedene Datentypen

Numerische Datentypen

Die Funktion mean() funktioniert nahtlos mit numerischen Datentypen wie Ganzzahlen und Gleitkommazahlen. Sie berechnet den arithmetischen Mittelwert der Werte in den ausgewählten Spalten.

# Beispiel mit numerischen Daten
data = {'Age': [25, 32, 41, 28, 35],
        'Salary': [50000, 60000, 70000, 55000, 65000]}
df = pd.DataFrame(data)
 
mean_age = df['Age'].mean()
mean_salary = df['Salary'].mean()
 
print(f"Das durchschnittliche Alter beträgt: {mean_age}")
print(f"Das durchschnittliche Gehalt beträgt: {mean_salary}")

Ausgabe:

Das durchschnittliche Alter beträgt: 32.2
Das durchschnittliche Gehalt beträgt: 60000.0

Nicht-numerische Datentypen

Die Funktion mean() kann auch auf nicht-numerische Datentypen wie Zeichenketten oder kategoriale Variablen angewendet werden, jedoch ist die Interpretation des Ergebnisses möglicherweise nicht sinnvoll. In solchen Fällen versucht die mean()-Funktion, die nicht-numerischen Werte in numerische Werte umzuwandeln, bevor der Mittelwert berechnet wird.

# Beispiel mit nicht-numerischen Daten
data = {'Name': ['John', 'Jane', 'Bob', 'Alice', 'Tom'],
        'Gender': ['M', 'F', 'M', 'F', 'M']}
df = pd.DataFrame(data)
 
mean_gender = df['Gender'].mean()
print(f"Das durchschnittliche Geschlecht ist: {mean_gender}")

Ausgabe:

Das durchschnittliche Geschlecht ist: 0.6

In diesem Beispiel wandelt die mean()-Funktion die Werte 'M' und 'F' in numerische Werte (0 und 1) um und berechnet den Durchschnitt, der 0.6 beträgt. Dieses Ergebnis ist im Kontext der Geschlechterdaten wenig aussagekräftig.

Interpretation der Ergebnisse der Mittelwertberechnung

Verständnis der Bedeutung des Mittelwertes

Der Mittelwert repräsentiert die zentrale Tendenz der Daten und liefert eine Schätzung für den "Durchschnitts-" oder "typischen" Wert im Datensatz. Er wird berechnet, indem alle Werte summiert und durch die Anzahl der nicht fehlenden Werte geteilt werden.

Die Interpretation des Mittelwertes hängt vom Kontext der Daten und dem konkreten Problem ab, das Sie lösen möchten. Zum Beispiel gibt der Mittelwert des 'Age'-Werts von 32,2 Jahren eine Vorstellung vom durchschnittlichen Alter im Datensatz. Für die 'Salary'-Spalte liefert der Mittelwert von 60.000 US-Dollar Informationen über das durchschnittliche Gehaltsniveau.

Identifizierung potenzieller Probleme mit dem Mittelwert

Obwohl der Mittelwert eine weit verbreitete Zusammenfassungsstatistik ist, kann er von Ausreißern oder schiefen Verteilungen beeinflusst werden. Ausreißer, die Datenpunkte, die erheblich von den restlichen Daten abweichen, können den Mittelwert in ihre Richtung ziehen und ihn weniger repräsentativ für den typischen Wert machen.

Darüber hinaus, wenn die Daten schief sind (d.h. die Verteilung ist nicht symmetrisch), ist der Mittelwert möglicherweise nicht die beste Darstellung der zentralen Tendenz, und der Median könnte ein geeigneteres Maß sein.

Vergleich des Mittelwerts mit anderen Zusammenfassungsstatistiken

Unterschiede zwischen dem Mittelwert und dem Median

Der Median ist eine weitere Maßzahl der zentralen Tendenz, die den mittleren Wert im Datensatz darstellt, wenn die Werte in der Reihenfolge angeordnet sind. Im Gegensatz zum Mittelwert wird der Median weniger von Ausreißern und schiefen Verteilungen beeinflusst.

Die Hauptunterschiede zwischen dem Mittelwert und dem Median sind:

  • Der Mittelwert ist der arithmetische Durchschnitt, während der Median der mittlere Wert ist.
  • Der Mittelwert ist empfindlich gegenüber Ausreißern, während der Median robuster gegenüber Ausreißern ist.
  • Der Mittelwert wird von der Größenordnung der Werte beeinflusst, während der Median dies nicht tut.
  • Der Durchschnitt wird durch die Form der Verteilung beeinflusst, während der Median dies nicht ist.

Wann man den Durchschnitt und den Median verwenden sollte

Die Wahl zwischen dem Durchschnitt und dem Median hängt von den Eigenschaften der Daten und dem spezifischen Problem ab, das Sie lösen möchten. Im Allgemeinen:

  • Verwenden Sie den Durchschnitt, wenn die Daten annähernd normal verteilt sind und Sie den "typischen" oder "durchschnittlichen" Wert darstellen möchten.
  • Verwenden Sie den Median, wenn die Daten schief sind oder Ausreißer enthalten, da er weniger von extremen Werten beeinflusst wird und ein robusteres Maß für die zentrale Tendenz liefert.
  • Verwenden Sie den Median, wenn Sie den "mittleren" Wert im Datensatz finden möchten, unabhängig von der Verteilung.

Gruppierung von Daten und Berechnung des Durchschnitts

Berechnung des Durchschnitts für gruppierte Daten

Sie können auch den Durchschnitt für gruppierte Daten in einem Datenrahmen berechnen. Dies ist nützlich, wenn Sie den Durchschnitt für verschiedene Teilmengen Ihrer Daten analysieren möchten. Dazu können Sie die Funktion groupby() in Pandas verwenden.

# Beispiel mit gruppierten Daten
data = {'Name': ['John', 'Jane', 'Bob', 'Alice', 'Tom'],
        'Age': [25, 32, 41, 28, 35],
        'Salary': [50000, 60000, 70000, 55000, 65000],
        'Department': ['Sales', 'Marketing', 'IT', 'Sales', 'IT']}
df = pd.DataFrame(data)
 
# Berechnen Sie das Durchschnittsalter und den Durchschnittsgehalt für jede Abteilung
mean_values = df.groupby('Department')[['Age', 'Salary']].mean()
print(mean_values)

Ausgabe:

            Age   Salary
Department               
IT         38.0  67500.0
Marketing  32.0  60000.0
Sales      26.5  52500.0

In diesem Beispiel gruppieren wir den Datenrahmen nach der Spalte "Department" und berechnen dann den Durchschnitt der Spalten "Age" und "Salary" für jede Abteilung.

Anwendung des Durchschnitts auf mehrere Gruppen

Sie können die Durchschnittsberechnung auch gleichzeitig auf mehrere Gruppen anwenden. Dies kann nützlich sein, wenn Sie die Durchschnittswerte über verschiedene Gruppierungskriterien vergleichen möchten.

# Beispiel mit mehreren Gruppierungskriterien
data = {'Name': ['John', 'Jane', 'Bob', 'Alice', 'Tom', 'Emily', 'David', 'Sarah'],
        'Age': [25, 32, 41, 28, 35, 30, 38, 27],
        'Salary': [50000, 60000, 70000, 55000, 65000, 52000, 68000, 48000],
        'Department': ['Sales', 'Marketing', 'IT', 'Sales', 'IT', 'Marketing', 'IT', 'Sales'],
        'Gender': ['M', 'F', 'M', 'F', 'M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
 
# Berechnen Sie das Durchschnittsalter und den Durchschnittsgehalt für jede Abteilung und Geschlecht
mean_values = df.groupby(['Department', 'Gender'])[['Age', 'Salary']].mean()
print(mean_values)

Ausgabe:

                     Age   Salary
Department Gender                
IT          M      39.5  69000.0
            F      30.0  52000.0
Marketing   F      31.0  60000.0
Sales       F      27.5  51500.0
            M      26.0  50000.0

In diesem Beispiel gruppieren wir den Datenrahmen sowohl nach den Spalten "Department" als auch nach "Gender" und berechnen dann den Durchschnitt der Spalten "Age" und "Salary" für jede Kombination von Abteilung und Geschlecht.

Arbeiten mit Modulen und Paketen

Die modulare Gestaltung von Python ermöglicht es Ihnen, Ihren Code in wiederverwendbare Komponenten namens Module zu organisieren. Module sind Python-Dateien, die Definitionen und Anweisungen enthalten. Durch das Importieren von Modulen können Sie auf die von ihnen bereitgestellte Funktionalität zugreifen.

Importieren von Modulen

Die import-Anweisung wird verwendet, um die Funktionalität eines Moduls einzubinden. Hier ist ein Beispiel:

import math
print(math.pi)  # Ausgabe: 3.141592653589793

Sie können auch bestimmte Funktionen oder Attribute aus einem Modul importieren:

from math import pi, sqrt
print(pi)       # Ausgabe: 3.141592653589793
print(sqrt(9)) # Ausgabe: 3.0

Erstellen von Modulen

Um Ihr eigenes Modul zu erstellen, speichern Sie einfach Ihren Python-Code in einer .py-Datei. Zum Beispiel erstellen wir ein Modul namens my_module.py:

def greet(name):
    print(f"Hallo, {name}!")
 
def square(x):
    return x ** 2

Jetzt können Sie die Funktionen aus diesem Modul importieren und verwenden:

import my_module
my_module.greet("Alice")  # Ausgabe: Hallo, Alice!
result = my_module.square(5)
print(result)  # Ausgabe: 25

Pakete

Pakete sind eine Möglichkeit, Module in hierarchische Strukturen zu organisieren. Ein Paket ist eine Sammlung von in einem Verzeichnis gespeicherten Modulen. Um ein Paket zu erstellen, erstellen Sie einfach ein Verzeichnis und legen Sie Ihre Moduldateien darin ab.

Beispielweise erstellen wir ein Paket namens my_package mit zwei Modulen: utils.py und math_functions.py:

my_package/
    __init__.py
    utils.py
    math_functions.py

Die Datei __init__.py ist erforderlich, um das Verzeichnis zu einem Paket zu machen. Sie kann leer sein oder Initialisierungscode enthalten.

Jetzt können Sie Module aus dem Paket wie folgt importieren:

from my_package import utils, math_functions
utils.print_message("Hallo, Welt!")
result = math_functions.add(3, 4)
print(result)  # Ausgabe: 7

Pakete und relative Imports

Innerhalb eines Pakets können Sie relative Importe verwenden, um auf andere Module im selben Paket zuzugreifen. Relative Imports verwenden die Notation ., um den relativen Pfad anzugeben.

Angenommen, math_functions.py muss beispielsweise eine Funktion aus utils.py verwenden:

# math_functions.py
from .utils import print_message
 
def add(a, b):
    print_message("Zahlen werden addiert...")
    return a + b

Das führende . in der Import-Anweisung gibt an, dass sich das Modul utils im selben Verzeichnis wie das aktuelle Modul befindet.

Virtuelle Umgebungen

Virtuelle Umgebungen ermöglichen es Ihnen, isolierte Python-Umgebungen mit ihren eigenen Abhängigkeiten und Paketinstallationen zu erstellen und zu verwalten. Dies hilft, Konflikte zwischen verschiedenen Projekten zu vermeiden und konsistente Entwicklungsumgebungen zu gewährleisten.

Sie können virtuelle Umgebungen mit Tools wie venv (in Python integriert) oder pipenv erstellen und verwalten.

Hier ist ein Beispiel mit venv:

# Erstellen Sie eine neue virtuelle Umgebung
python -m venv my_env

# Aktivieren Sie die virtuelle Umgebung
# (Windows)
my_env\Scripts\activate
# (macOS/Linux)
source my_env/bin/activate

# Installieren Sie Pakete in der virtuellen Umgebung
pip install numpy pandas

Wenn du fertig bist, kannst du die virtuelle Umgebung deaktivieren:

deactivate

Fazit

In diesem Tutorial hast du gelernt, wie man mit Modulen und Paketen in Python arbeitet. Du hast das Importieren von Modulen erkundet, eigene Module erstellt, Code mithilfe von Paketen organisiert und relative Importe genutzt. Zusätzlich hast du die Bedeutung virtueller Umgebungen für das Verwalten von Abhängigkeiten und die Sicherstellung konsistenter Entwicklungsumgebungen kennengelernt.

Indem du diese Konzepte beherrschst, wirst du in der Lage sein, modulareren, wartbareren und skalierbareren Python-Code zu schreiben. Denke daran, dass der Schlüssel zur effektiven Python-Entwicklung darin besteht, das leistungsstarke Modul- und Paketsystem der Sprache zu nutzen, um wiederverwendbare und organisierte Komponenten zu erstellen.

MoeNagy Dev