edit corelation.py and add hr_data_cleaned.csv
parent
5e2c6e7187
commit
b8c420621b
|
@ -9,6 +9,18 @@ month_translation = {
|
||||||
'Jul': 'Jul', 'Aug': 'Aug', 'Sep': 'Sep', 'Okt': 'Oct', 'Nov': 'Nov', 'Dez': 'Dec'
|
'Jul': 'Jul', 'Aug': 'Aug', 'Sep': 'Sep', 'Okt': 'Oct', 'Nov': 'Nov', 'Dez': 'Dec'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Funktion zur Umwandlung von '6h 11min' in numerische Stundenwerte
|
||||||
|
def convert_sleep_duration(sleep_duration_str):
|
||||||
|
print(sleep_duration_str)
|
||||||
|
hours = 0
|
||||||
|
minutes = 0
|
||||||
|
if 'h' in sleep_duration_str:
|
||||||
|
hours_part = sleep_duration_str.split('h')[0].strip()
|
||||||
|
hours = int(hours_part)
|
||||||
|
if 'min' in sleep_duration_str:
|
||||||
|
minutes_part = sleep_duration_str.split('h')[-1].replace('min', '').strip()
|
||||||
|
minutes = int(minutes_part)
|
||||||
|
return hours + (minutes / 60)
|
||||||
|
|
||||||
# Funktion, um Datumsbereiche wie 'Mrz 29-Apr 4', 'Dez 22-28 2023' oder 'Dez 28' in Kalenderwoche und Jahr zu konvertieren
|
# Funktion, um Datumsbereiche wie 'Mrz 29-Apr 4', 'Dez 22-28 2023' oder 'Dez 28' in Kalenderwoche und Jahr zu konvertieren
|
||||||
def convert_to_week_and_year(date_range_str):
|
def convert_to_week_and_year(date_range_str):
|
||||||
|
@ -85,10 +97,13 @@ def convert_to_week_and_year(date_range_str):
|
||||||
|
|
||||||
# Datei Pfade
|
# Datei Pfade
|
||||||
hr_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/hr_gramic.csv'
|
hr_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/hr_gramic.csv'
|
||||||
sleep_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/sleep_gramic.csv'
|
sleep_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/sleep_gramic.csv'
|
||||||
hr_clean_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/hr_data_clean.csv'
|
hr_clean_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/hr_data_clean.csv'
|
||||||
sleep_clean_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/sleep_data_clean.csv'
|
sleep_clean_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/sleep_data_clean.csv'
|
||||||
combined_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/combined_data.csv'
|
combined_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/combined_data.csv'
|
||||||
|
graphic_corr_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/final/gramic_sleep_hr_correlation.png'
|
||||||
|
graphic_weekly_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/final/weekly_hr_sleep.png'
|
||||||
|
|
||||||
|
|
||||||
# Schritt 1: Lade die HR-Daten (mit Semikolon separiert) und entferne 'bpm'
|
# Schritt 1: Lade die HR-Daten (mit Semikolon separiert) und entferne 'bpm'
|
||||||
hr_data = pd.read_csv(hr_data_path, sep=';')
|
hr_data = pd.read_csv(hr_data_path, sep=';')
|
||||||
|
@ -108,11 +123,15 @@ hr_data_clean = hr_data[['Woche', 'avg_hr']]
|
||||||
hr_data_clean.to_csv(hr_clean_path, index=False)
|
hr_data_clean.to_csv(hr_clean_path, index=False)
|
||||||
|
|
||||||
# Schritt 2: Lade die Schlafdaten (mit Komma separiert)
|
# Schritt 2: Lade die Schlafdaten (mit Komma separiert)
|
||||||
sleep_data = pd.read_csv(sleep_data_path, sep=',')
|
sleep_data = pd.read_csv(sleep_data_path, sep=';')
|
||||||
|
|
||||||
# Konvertiere die Spalte 'Datum' in Kalenderwoche (KW und Jahr)
|
# Konvertiere die Spalte 'Datum' in Kalenderwoche (KW und Jahr)
|
||||||
sleep_data['Woche'] = sleep_data['Datum'].apply(convert_to_week_and_year)
|
sleep_data['Woche'] = sleep_data['Datum'].apply(convert_to_week_and_year)
|
||||||
|
|
||||||
|
# Konvertiere die Spalte 'Durchschnittliche Dauer' in numerische Stunden
|
||||||
|
sleep_data['Durchschnittliche Dauer'] = sleep_data['Durchschnittliche Dauer'].apply(convert_sleep_duration)
|
||||||
|
|
||||||
|
|
||||||
# Speichere nur die Spalten 'Woche' und 'Durchschnittliche Dauer' in einer neuen CSV-Datei
|
# Speichere nur die Spalten 'Woche' und 'Durchschnittliche Dauer' in einer neuen CSV-Datei
|
||||||
sleep_data_clean = sleep_data[['Woche', 'Durchschnittliche Dauer']]
|
sleep_data_clean = sleep_data[['Woche', 'Durchschnittliche Dauer']]
|
||||||
sleep_data_clean.to_csv(sleep_clean_path, index=False)
|
sleep_data_clean.to_csv(sleep_clean_path, index=False)
|
||||||
|
@ -141,4 +160,28 @@ plt.plot(combined_data['avg_hr'], m * combined_data['avg_hr'] + b, color='red',
|
||||||
label=f'Trendlinie (Kor = {correlation:.2f})')
|
label=f'Trendlinie (Kor = {correlation:.2f})')
|
||||||
|
|
||||||
plt.legend()
|
plt.legend()
|
||||||
|
# Speichern der Grafik
|
||||||
|
plt.savefig(graphic_corr_path)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
# Schritt 6: Erstelle eine Grafik pro Kalenderwoche (Herzfrequenz und Schlafdaten)
|
||||||
|
plt.figure(figsize=(12, 6))
|
||||||
|
|
||||||
|
# Plot für die Herzfrequenz
|
||||||
|
plt.bar(combined_data['Woche'], combined_data['avg_hr'], width=0.4, label='Durchschnittliche Herzfrequenz', align='center')
|
||||||
|
|
||||||
|
# Plot für die Schlafdauer (mit Verschiebung, um Überlappung zu vermeiden)
|
||||||
|
plt.bar(combined_data['Woche'], combined_data['Durchschnittliche Dauer'], width=0.4, label='Schlafdauer', align='edge')
|
||||||
|
|
||||||
|
# Diagrammtitel und Achsenbeschriftungen
|
||||||
|
plt.title('Durchschnittliche Herzfrequenz und Schlafdauer pro Kalenderwoche')
|
||||||
|
plt.xlabel('Kalenderwoche')
|
||||||
|
plt.ylabel('Wert')
|
||||||
|
|
||||||
|
# Legende und Rotation der x-Achse
|
||||||
|
plt.legend()
|
||||||
|
plt.xticks(rotation=45, ha='right')
|
||||||
|
|
||||||
|
# Speichern der zweiten Grafik
|
||||||
|
plt.savefig(graphic_weekly_path)
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
import pandas as pd
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
# Manuelle Zuordnung der Monatsnamen von Deutsch auf Englisch
|
||||||
|
month_translation = {
|
||||||
|
'Jan': 'Jan', 'Feb': 'Feb', 'Mär': 'Mar', 'Mrz': 'Mar', 'Apr': 'Apr', 'Mai': 'May', 'Jun': 'Jun',
|
||||||
|
'Jul': 'Jul', 'Aug': 'Aug', 'Sep': 'Sep', 'Okt': 'Oct', 'Nov': 'Nov', 'Dez': 'Dec'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Funktion, um Datumsbereiche wie 'Mrz 29-Apr 4', 'Dez 22-28 2023' oder 'Dez 28' in Kalenderwoche und Jahr zu konvertieren
|
||||||
|
def convert_to_week_and_year(date_range_str):
|
||||||
|
# Entferne zusätzliche Leerzeichen um den Bindestrich herum und entferne Kommas
|
||||||
|
date_range_str = date_range_str.replace(" - ", "-").replace(",", "")
|
||||||
|
|
||||||
|
# Prüfen, ob das Format nur einen Tag und Monat enthält (z.B. 'Dez 28')
|
||||||
|
if "-" not in date_range_str and len(date_range_str.split(" ")) == 2:
|
||||||
|
# Nur ein Datum (Monat und Tag)
|
||||||
|
month_str, day_str = date_range_str.split(" ")
|
||||||
|
day = int(day_str.strip())
|
||||||
|
year_str = str(datetime.now().year) # Verwende das aktuelle Jahr
|
||||||
|
|
||||||
|
# Konvertiere den deutschen Monatsnamen in den englischen
|
||||||
|
if month_str in month_translation:
|
||||||
|
month_str = month_translation[month_str]
|
||||||
|
|
||||||
|
# Konvertiere das Datum
|
||||||
|
start_date = datetime.strptime(f"{month_str} {day} {year_str}", "%b %d %Y")
|
||||||
|
|
||||||
|
# Berechne die Kalenderwoche und das Jahr
|
||||||
|
week_number = start_date.isocalendar()[1]
|
||||||
|
year = start_date.year
|
||||||
|
|
||||||
|
return f"W{week_number}-{year}"
|
||||||
|
|
||||||
|
# Prüfen, ob das Jahr am Ende steht (z.B. 'Dez 22-28 2023')
|
||||||
|
if date_range_str[-4:].isdigit():
|
||||||
|
# Jahr am Ende des Datums
|
||||||
|
year_str = date_range_str[-4:]
|
||||||
|
date_range_str = date_range_str[:-5] # Entferne das Jahr aus der Datumsangabe
|
||||||
|
else:
|
||||||
|
# Kein Jahr am Ende -> nutze das aktuelle Jahr
|
||||||
|
year_str = str(datetime.now().year)
|
||||||
|
|
||||||
|
# Splitte den Datumsbereich in Start- und Endteil
|
||||||
|
start_part, end_part = date_range_str.split("-")
|
||||||
|
|
||||||
|
# Verarbeite den Startteil
|
||||||
|
start_parts = start_part.split(" ")
|
||||||
|
start_month_str = start_parts[0]
|
||||||
|
start_day = int(start_parts[1].strip()) # Nimm den Starttag und entferne etwaige Leerzeichen
|
||||||
|
|
||||||
|
# Verarbeite den Endteil
|
||||||
|
end_parts = end_part.split(" ")
|
||||||
|
|
||||||
|
# Verarbeite das Enddatum, basierend darauf, ob der Endteil das Jahr enthält
|
||||||
|
if len(end_parts) == 2: # Fall: 'Apr 4'
|
||||||
|
end_month_str = end_parts[0]
|
||||||
|
end_day = int(end_parts[1].strip())
|
||||||
|
else:
|
||||||
|
# Fall: kein Monat -> nur Tag (z.B. '28' im Format 'Dez 22-28 2023')
|
||||||
|
end_month_str = start_month_str
|
||||||
|
end_day = int(end_parts[0].strip())
|
||||||
|
|
||||||
|
# Konvertiere den deutschen Monatsnamen in den englischen für beide Monate
|
||||||
|
if start_month_str in month_translation:
|
||||||
|
start_month_str = month_translation[start_month_str]
|
||||||
|
if end_month_str in month_translation:
|
||||||
|
end_month_str = month_translation[end_month_str]
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Konvertiere das Startdatum in ein Datum
|
||||||
|
start_date = datetime.strptime(f"{start_month_str} {start_day} {year_str}", "%b %d %Y")
|
||||||
|
except ValueError:
|
||||||
|
raise ValueError(f"Ungültiges Startdatum: {start_month_str} {start_day} {year_str}")
|
||||||
|
|
||||||
|
# Berechne die Kalenderwoche und das Jahr basierend auf dem Startdatum
|
||||||
|
week_number = start_date.isocalendar()[1]
|
||||||
|
year = start_date.year
|
||||||
|
|
||||||
|
return f"W{week_number}-{year}" # Gib Kalenderwoche und Jahr im Format W-YYYY zurück
|
||||||
|
|
||||||
|
|
||||||
|
# Datei Pfade
|
||||||
|
hr_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/hr_gramic.csv'
|
||||||
|
sleep_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/sleep_gramic.csv'
|
||||||
|
hr_clean_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/hr_data_clean.csv'
|
||||||
|
sleep_clean_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/sleep_data_clean.csv'
|
||||||
|
combined_data_path = '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/sandbox/combined_data.csv'
|
||||||
|
|
||||||
|
# Schritt 1: Lade die HR-Daten (mit Semikolon separiert) und entferne 'bpm'
|
||||||
|
hr_data = pd.read_csv(hr_data_path, sep=';')
|
||||||
|
|
||||||
|
# Entferne 'bpm' und konvertiere die Werte in numerische Daten
|
||||||
|
hr_data['In Ruhe'] = hr_data['In Ruhe'].str.replace(' bpm', '').astype(float)
|
||||||
|
hr_data['Hoch'] = hr_data['Hoch'].str.replace(' bpm', '').astype(float)
|
||||||
|
|
||||||
|
# Konvertiere die Spalte 'Datum' in Kalenderwoche (KW und Jahr)
|
||||||
|
hr_data['Woche'] = hr_data['Datum'].apply(convert_to_week_and_year)
|
||||||
|
|
||||||
|
# Berechne den Durchschnitt der Herzfrequenzdaten (In Ruhe und Hoch)
|
||||||
|
hr_data['avg_hr'] = hr_data[['In Ruhe', 'Hoch']].mean(axis=1)
|
||||||
|
|
||||||
|
# Speichere nur die Spalten 'Woche' und 'avg_hr' in einer neuen CSV-Datei
|
||||||
|
hr_data_clean = hr_data[['Woche', 'avg_hr']]
|
||||||
|
hr_data_clean.to_csv(hr_clean_path, index=False)
|
||||||
|
|
||||||
|
# Schritt 2: Lade die Schlafdaten (mit Komma separiert)
|
||||||
|
sleep_data = pd.read_csv(sleep_data_path, sep=',')
|
||||||
|
|
||||||
|
# Konvertiere die Spalte 'Datum' in Kalenderwoche (KW und Jahr)
|
||||||
|
sleep_data['Woche'] = sleep_data['Datum'].apply(convert_to_week_and_year)
|
||||||
|
|
||||||
|
# Speichere nur die Spalten 'Woche' und 'Durchschnittliche Dauer' in einer neuen CSV-Datei
|
||||||
|
sleep_data_clean = sleep_data[['Woche', 'Durchschnittliche Dauer']]
|
||||||
|
sleep_data_clean.to_csv(sleep_clean_path, index=False)
|
||||||
|
|
||||||
|
# Schritt 3: Kombiniere die HR- und Schlafdaten basierend auf der 'Woche'
|
||||||
|
combined_data = pd.merge(hr_data_clean, sleep_data_clean, on='Woche', how='inner')
|
||||||
|
|
||||||
|
# Speichere das kombinierte Dataset in einer neuen CSV-Datei
|
||||||
|
combined_data.to_csv(combined_data_path, index=False)
|
||||||
|
|
||||||
|
# Schritt 4: Berechne die Korrelation zwischen avg_hr und der Schlafdauer
|
||||||
|
correlation = combined_data['avg_hr'].corr(combined_data['Durchschnittliche Dauer'])
|
||||||
|
print(f"Die Korrelation zwischen der durchschnittlichen Herzfrequenz und der Schlafdauer ist: {correlation}")
|
||||||
|
|
||||||
|
# Schritt 5: Visualisiere den Zusammenhang zwischen Herzfrequenz und Schlafdauer
|
||||||
|
plt.figure(figsize=(10, 6))
|
||||||
|
plt.scatter(combined_data['avg_hr'], combined_data['Durchschnittliche Dauer'], color='blue', label='Datenpunkte')
|
||||||
|
plt.title('Zusammenhang zwischen Herzfrequenz (Durchschnitt) und Schlafdauer')
|
||||||
|
plt.xlabel('Durchschnittliche Herzfrequenz (bpm)')
|
||||||
|
plt.ylabel('Schlafdauer (Stunden)')
|
||||||
|
plt.grid(True)
|
||||||
|
|
||||||
|
# Linie zur Visualisierung des Trends hinzufügen
|
||||||
|
m, b = np.polyfit(combined_data['avg_hr'], combined_data['Durchschnittliche Dauer'], 1)
|
||||||
|
plt.plot(combined_data['avg_hr'], m * combined_data['avg_hr'] + b, color='red',
|
||||||
|
label=f'Trendlinie (Kor = {correlation:.2f})')
|
||||||
|
|
||||||
|
plt.legend()
|
||||||
|
plt.show()
|
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
|
@ -1,42 +1,52 @@
|
||||||
Woche,avg_hr,Durchschnittliche Dauer
|
Woche,avg_hr,Durchschnittliche Dauer
|
||||||
W40-2024,98.5,6h 34min
|
W40-2024,98.5,6.566666666666666
|
||||||
W39-2024,105.0,6h 23min
|
W39-2024,105.0,6.383333333333334
|
||||||
W38-2024,107.5,6h 41min
|
W38-2024,107.5,6.683333333333334
|
||||||
W37-2024,105.0,6h 18min
|
W37-2024,105.0,6.3
|
||||||
W36-2024,97.0,6h 19min
|
W36-2024,97.0,6.316666666666666
|
||||||
W35-2024,102.5,7h 1min
|
W35-2024,102.5,7.016666666666667
|
||||||
W34-2024,108.5,6h 17min
|
W34-2024,108.5,6.283333333333333
|
||||||
W33-2024,103.0,6h 36min
|
W33-2024,103.0,6.6
|
||||||
W32-2024,105.0,5h 45min
|
W32-2024,105.0,5.75
|
||||||
W31-2024,103.5,7h 4min
|
W31-2024,103.5,7.066666666666666
|
||||||
W30-2024,107.0,6h 52min
|
W30-2024,107.0,6.866666666666667
|
||||||
W29-2024,102.5,6h 26min
|
W29-2024,102.5,6.433333333333334
|
||||||
W28-2024,108.5,7h 10min
|
W28-2024,108.5,7.166666666666667
|
||||||
W27-2024,106.5,7h 35min
|
W27-2024,106.5,7.583333333333333
|
||||||
W26-2024,111.5,6h 8min
|
W26-2024,111.5,6.133333333333334
|
||||||
W25-2024,102.5,6h 30min
|
W25-2024,102.5,6.5
|
||||||
W24-2024,107.5,6h 1min
|
W24-2024,107.5,6.016666666666667
|
||||||
W23-2024,101.5,6h 22min
|
W23-2024,101.5,6.366666666666666
|
||||||
W22-2024,104.5,6h 33min
|
W22-2024,104.5,6.55
|
||||||
W21-2024,107.0,6h 47min
|
W21-2024,107.0,6.783333333333333
|
||||||
W20-2024,103.5,5h 51min
|
W20-2024,103.5,5.85
|
||||||
W19-2024,109.0,6h 21min
|
W19-2024,109.0,6.35
|
||||||
W18-2024,107.5,5h 36min
|
W18-2024,107.5,5.6
|
||||||
W17-2024,110.0,6h 2min
|
W17-2024,110.0,6.033333333333333
|
||||||
W16-2024,98.0,6h 28min
|
W16-2024,98.0,6.466666666666667
|
||||||
W15-2024,99.0,6h 17min
|
W15-2024,99.0,6.283333333333333
|
||||||
W14-2024,97.5,6h 18min
|
W14-2024,97.5,6.3
|
||||||
W13-2024,101.0,6h 50min
|
W13-2024,101.0,6.833333333333333
|
||||||
W12-2024,100.0,6h 9min
|
W12-2024,100.0,6.15
|
||||||
W11-2024,101.5,6h 11min
|
W11-2024,101.5,6.183333333333334
|
||||||
W10-2024,99.0,6h 22min
|
W10-2024,99.0,6.366666666666666
|
||||||
W9-2024,102.0,6h 4min
|
W9-2024,102.0,6.066666666666666
|
||||||
W8-2024,106.0,7h 11min
|
W8-2024,106.0,7.183333333333334
|
||||||
W7-2024,101.5,6h 58min
|
W7-2024,101.5,6.966666666666667
|
||||||
W6-2024,104.0,8h 17min
|
W6-2024,104.0,8.283333333333333
|
||||||
W5-2024,99.5,6h 12min
|
W5-2024,99.5,6.2
|
||||||
W4-2024,100.5,7h 21min
|
W4-2024,100.5,7.35
|
||||||
W3-2024,99.0,6h 25min
|
W3-2024,99.0,6.416666666666667
|
||||||
W2-2024,97.0,6h 27min
|
W2-2024,97.0,6.45
|
||||||
W1-2024,97.5,6h 44min
|
W1-2024,97.5,6.733333333333333
|
||||||
W52-2024,93.5,54
|
W52-2024,93.5,7.033333333333333
|
||||||
|
W51-2023,88.0,7.266666666666667
|
||||||
|
W50-2023,95.0,7.283333333333333
|
||||||
|
W49-2023,99.0,7.883333333333333
|
||||||
|
W48-2023,101.5,6.85
|
||||||
|
W47-2023,103.5,7.183333333333334
|
||||||
|
W46-2023,105.5,7.116666666666666
|
||||||
|
W45-2023,104.0,7.083333333333333
|
||||||
|
W44-2023,101.5,6.033333333333333
|
||||||
|
W43-2023,95.0,6.65
|
||||||
|
W42-2023,96.5,6.283333333333333
|
||||||
|
|
|
|
@ -1,53 +1,53 @@
|
||||||
Woche,Durchschnittliche Dauer
|
Woche,Durchschnittliche Dauer
|
||||||
W41-2024,6h 11min
|
W41-2024,6.183333333333334
|
||||||
W40-2024,6h 34min
|
W40-2024,6.566666666666666
|
||||||
W39-2024,6h 23min
|
W39-2024,6.383333333333334
|
||||||
W38-2024,6h 41min
|
W38-2024,6.683333333333334
|
||||||
W37-2024,6h 18min
|
W37-2024,6.3
|
||||||
W36-2024,6h 19min
|
W36-2024,6.316666666666666
|
||||||
W35-2024,7h 1min
|
W35-2024,7.016666666666667
|
||||||
W34-2024,6h 17min
|
W34-2024,6.283333333333333
|
||||||
W33-2024,6h 36min
|
W33-2024,6.6
|
||||||
W32-2024,5h 45min
|
W32-2024,5.75
|
||||||
W31-2024,7h 4min
|
W31-2024,7.066666666666666
|
||||||
W30-2024,6h 52min
|
W30-2024,6.866666666666667
|
||||||
W29-2024,6h 26min
|
W29-2024,6.433333333333334
|
||||||
W28-2024,7h 10min
|
W28-2024,7.166666666666667
|
||||||
W27-2024,7h 35min
|
W27-2024,7.583333333333333
|
||||||
W26-2024,6h 8min
|
W26-2024,6.133333333333334
|
||||||
W25-2024,6h 30min
|
W25-2024,6.5
|
||||||
W24-2024,6h 1min
|
W24-2024,6.016666666666667
|
||||||
W23-2024,6h 22min
|
W23-2024,6.366666666666666
|
||||||
W22-2024,6h 33min
|
W22-2024,6.55
|
||||||
W21-2024,6h 47min
|
W21-2024,6.783333333333333
|
||||||
W20-2024,5h 51min
|
W20-2024,5.85
|
||||||
W19-2024,6h 21min
|
W19-2024,6.35
|
||||||
W18-2024,5h 36min
|
W18-2024,5.6
|
||||||
W17-2024,6h 2min
|
W17-2024,6.033333333333333
|
||||||
W16-2024,6h 28min
|
W16-2024,6.466666666666667
|
||||||
W15-2024,6h 17min
|
W15-2024,6.283333333333333
|
||||||
W14-2024,6h 18min
|
W14-2024,6.3
|
||||||
W13-2024,6h 50min
|
W13-2024,6.833333333333333
|
||||||
W12-2024,6h 9min
|
W12-2024,6.15
|
||||||
W11-2024,6h 11min
|
W11-2024,6.183333333333334
|
||||||
W10-2024,6h 22min
|
W10-2024,6.366666666666666
|
||||||
W9-2024,6h 4min
|
W9-2024,6.066666666666666
|
||||||
W8-2024,7h 11min
|
W8-2024,7.183333333333334
|
||||||
W7-2024,6h 58min
|
W7-2024,6.966666666666667
|
||||||
W6-2024,8h 17min
|
W6-2024,8.283333333333333
|
||||||
W5-2024,6h 12min
|
W5-2024,6.2
|
||||||
W4-2024,7h 21min
|
W4-2024,7.35
|
||||||
W3-2024,6h 25min
|
W3-2024,6.416666666666667
|
||||||
W2-2024,6h 27min
|
W2-2024,6.45
|
||||||
W1-2024,6h 44min
|
W1-2024,6.733333333333333
|
||||||
W52-2024,54
|
W52-2024,7.033333333333333
|
||||||
W51-2024,Schlecht
|
W51-2023,7.266666666666667
|
||||||
W50-2024,Schlecht
|
W50-2023,7.283333333333333
|
||||||
W49-2024,Schlecht
|
W49-2023,7.883333333333333
|
||||||
W48-2024,Schlecht
|
W48-2023,6.85
|
||||||
W47-2024,Schlecht
|
W47-2023,7.183333333333334
|
||||||
W46-2024,Schlecht
|
W46-2023,7.116666666666666
|
||||||
W45-2024,Schlecht
|
W45-2023,7.083333333333333
|
||||||
W44-2024,Schlecht
|
W44-2023,6.033333333333333
|
||||||
W43-2024,Schlecht
|
W43-2023,6.65
|
||||||
W42-2024,Schlecht
|
W42-2023,6.283333333333333
|
||||||
|
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
Datum;Ø Score;Ø Qualität;Durchschnittliche Dauer;Ø Schlafenszeit;Ø Aufstehzeit
|
||||||
|
Okt 10-16;46;Schlecht;6h 11min;1:28;7:50
|
||||||
|
Okt 3-9;56;Schlecht;6h 34min;0:33;7:22
|
||||||
|
Sep 26 - Okt 2;52;Schlecht;6h 23min;0:00;6:37
|
||||||
|
Sep 19-25;59;Schlecht;6h 41min;0:27;7:16
|
||||||
|
Sep 12-18;59;Schlecht;6h 18min;0:48;7:12
|
||||||
|
Sep 5-11;55;Schlecht;6h 19min;0:56;7:22
|
||||||
|
Aug 29 - Sep 4;66;Ausreichend;7h 1min;0:21;7:31
|
||||||
|
Aug 22-28;57;Schlecht;6h 17min;0:35;6:59
|
||||||
|
Aug 15-21;72;Ausreichend;6h 36min;0:38;7:25
|
||||||
|
Aug 8-14;56;Schlecht;5h 45min;0:16;6:06
|
||||||
|
Aug 1-7;64;Ausreichend;7h 4min;0:39;8:10
|
||||||
|
Jul 25-31;61;Ausreichend;6h 52min;0:40;7:56
|
||||||
|
Jul 18-24;54;Schlecht;6h 26min;2:16;9:19
|
||||||
|
Jul 11-17;74;Ausreichend;7h 10min;0:06;7:26
|
||||||
|
Jul 4-10;58;Schlecht;7h 35min;0:45;9:05
|
||||||
|
Jun 27 - Jul 3;60;Ausreichend;6h 8min;1:22;7:42
|
||||||
|
Jun 20-26;69;Ausreichend;6h 30min;0:19;6:58
|
||||||
|
Jun 13-19;59;Schlecht;6h 1min;0:25;6:33
|
||||||
|
Jun 6-12;60;Ausreichend;6h 22min;0:02;6:30
|
||||||
|
Mai 30 - Jun 5;60;Ausreichend;6h 33min;0:34;7:15
|
||||||
|
Mai 23-29;51;Schlecht;6h 47min;0:56;7:54
|
||||||
|
Mai 16-22;50;Schlecht;5h 51min;1:13;7:08
|
||||||
|
Mai 9-15;55;Schlecht;6h 21min;0:58;7:23
|
||||||
|
Mai 2-8;40;Schlecht;5h 36min;0:39;6:19
|
||||||
|
Apr 25 - Mai 1;55;Schlecht;6h 2min;1:18;7:26
|
||||||
|
Apr 18-24;56;Schlecht;6h 28min;3:11;9:55
|
||||||
|
Apr 11-17;56;Schlecht;6h 17min;1:23;7:51
|
||||||
|
Apr 4-10;62;Ausreichend;6h 18min;0:39;7:10
|
||||||
|
Mrz 28 - Apr 3;68;Ausreichend;6h 50min;1:45;8:51
|
||||||
|
Mrz 21-27;60;Ausreichend;6h 9min;0:56;7:13
|
||||||
|
Mrz 14-20;54;Schlecht;6h 11min;1:03;7:24
|
||||||
|
Mrz 7-13;54;Schlecht;6h 22min;0:49;7:17
|
||||||
|
Feb 29 - Mrz 6;50;Schlecht;6h 4min;0:56;7:09
|
||||||
|
Feb 22-28;61;Ausreichend;7h 11min;0:08;7:25
|
||||||
|
Feb 15-21;44;Schlecht;6h 58min;0:19;7:51
|
||||||
|
Feb 8-14;50;Schlecht;8h 17min;0:09;8:47
|
||||||
|
Feb 1-7;43;Schlecht;6h 12min;1:06;7:25
|
||||||
|
Jan 25-31;57;Schlecht;7h 21min;1:17;8:40
|
||||||
|
Jan 18-24;51;Schlecht;6h 25min;0:56;7:26
|
||||||
|
Jan 11-17;50;Schlecht;6h 27min;1:36;8:12
|
||||||
|
Jan 4-10;59;Schlecht;6h 44min;1:26;8:24
|
||||||
|
Dez 28, 2023 - Jan 3, 2024;54;Schlecht;7h 2min
|
||||||
|
Dez 21-27, 2023;55;Schlecht;7h 16min;0:38
|
||||||
|
Dez 14-20, 2023;56;Schlecht;7h 17min;0:31
|
||||||
|
Dez 7-13, 2023;44;Schlecht;7h 53min;23:46
|
||||||
|
Nov 30 - Dez 6, 2023;48;Schlecht;6h 51min;0:33
|
||||||
|
Nov 23-29, 2023;48;Schlecht;7h 11min;0:21
|
||||||
|
Nov 16-22, 2023;53;Schlecht;7h 7min;0:23
|
||||||
|
Nov 9-15, 2023;47;Schlecht;7h 5min;0:19
|
||||||
|
Nov 2-8, 2023;50;Schlecht;6h 2min;0:00
|
||||||
|
Okt 26 - Nov 1, 2023;59;Schlecht;6h 39min;0:14
|
||||||
|
Okt 19-25, 2023;48;Schlecht;6h 17min;0:46
|
Can't render this file because it has a wrong number of fields in line 43.
|
Loading…
Reference in New Issue