Wie berechnet man den Median von gruppierten kontinuierlichen Daten in Python?
Es gibt verschiedene Methoden, um den Median von gruppierten kontinuierlichen Daten in Python zu berechnen. Hier sind einige Möglichkeiten:
Methode 1: Verwendung von Pandas
Pandas ist eine Python-Bibliothek, die häufig für die Datenanalyse verwendet wird. Sie bietet eine einfache Möglichkeit, den Median von gruppierten kontinuierlichen Daten zu berechnen.
import pandas as pd
# Erstellen eines DataFrame mit gruppierten kontinuierlichen Daten
data = {'Klasse': ['A', 'B', 'C', 'D', 'E'],
'Untere Grenze': [0, 10, 20, 30, 40],
'Obere Grenze': [10, 20, 30, 40, 50],
'Häufigkeit': [5, 10, 15, 20, 25]}
df = pd.DataFrame(data)
# Berechnung des kumulativen Summen der Häufigkeit
df['Kumulative Häufigkeit'] = df['Häufigkeit'].cumsum()
# Berechnung des Median
n = df['Häufigkeit'].sum()
n_half = n / 2
median_class = df[df['Kumulative Häufigkeit'] >= n_half].iloc[0]
median = median_class['Untere Grenze'] + ((n_half - median_class['Kumulative Häufigkeit'] + median_class['Häufigkeit'] - 1) / median_class['Häufigkeit']) * (median_class['Obere Grenze'] - median_class['Untere Grenze'])
print('Median:', median)
Methode 2: Verwendung von Numpy
Numpy ist eine Python-Bibliothek, die für numerische Berechnungen verwendet wird. Sie bietet eine Möglichkeit, den Median von gruppierten kontinuierlichen Daten zu berechnen.
import numpy as np
# Erstellen von Arrays mit gruppierten kontinuierlichen Daten
lower_limits = np.array([0, 10, 20, 30, 40])
upper_limits = np.array([10, 20, 30, 40, 50])
frequencies = np.array([5, 10, 15, 20, 25])
# Berechnung des kumulativen Summen der Häufigkeit
cumulative_frequencies = np.cumsum(frequencies)
# Berechnung des Median
n = frequencies.sum()
n_half = n / 2
median_class_index = np.where(cumulative_frequencies >= n_half)[0][0]
median_class = {'lower_limit': lower_limits[median_class_index],
'upper_limit': upper_limits[median_class_index],
'frequency': frequencies[median_class_index],
'cumulative_frequency': cumulative_frequencies[median_class_index - 1]}
median = median_class['lower_limit'] + ((n_half - median_class['cumulative_frequency']) / median_class['frequency']) * (median_class['upper_limit'] - median_class['lower_limit'])
print('Median:', median)
Beide Methoden liefern das gleiche Ergebnis.