diff --git a/code/corelation.py b/code/corelation.py index 8cbab6c..c2cf59a 100644 --- a/code/corelation.py +++ b/code/corelation.py @@ -1,40 +1,50 @@ import pandas as pd -# Lade die CSV-Dateien -# Datei 1 mit Semikolon (;) separiert (HR-Daten) +# Schritt 1: Lade die HR-Daten (mit Semikolon separiert) und entferne 'bpm' hr_data = pd.read_csv('/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/hr_gramic.csv', sep=';') -# Datei 2 mit Komma (,) separiert (Schlafdaten) -sleep_data = pd.read_csv('/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/sleep_gramic.csv', sep=',') - -# Überprüfen der ersten Zeilen der Dateien -print("HR-Daten (vor der Berechnung des Durchschnitts):") +# Zeige die ersten Zeilen der HR-Daten vor der Bereinigung +print("HR-Daten (vor der Bereinigung):") print(hr_data.head()) -# Berechne den Durchschnitt der HR-Daten (zwischen Ruhe und Hoch) -# Erstelle eine neue Spalte 'avg_hr', die den Durchschnitt von 'Resting HR' und 'High HR' enthält +# 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) + +# Zeige die bereinigten HR-Daten +print("\nHR-Daten (nach der Entfernung von 'bpm'):") +print(hr_data.head()) + +# Speichere die bereinigten HR-Daten in eine neue CSV-Datei (Zwischendatei) +hr_data.to_csv('hr_data_cleaned.csv', sep=';', index=False) +print("\nBereinigte HR-Daten wurden in '/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/hr_data_cleaned.csv' gespeichert.") + +# Schritt 2: Berechne den Durchschnitt der Herzfrequenzdaten (Resting HR und High HR) hr_data['avg_hr'] = hr_data[['In Ruhe', 'Hoch']].mean(axis=1) -# Überprüfen der ersten Zeilen nach dem Hinzufügen der 'avg_hr' Spalte +# Zeige die HR-Daten nach der Berechnung des Durchschnitts print("\nHR-Daten (nach der Berechnung des Durchschnitts):") print(hr_data.head()) -# Überprüfen der ersten Zeilen der Schlafdaten +# Schritt 3: Lade die Schlafdaten (mit Komma separiert) +sleep_data = pd.read_csv('/home/gra/PycharmProjects/cds_introduction_data_science_assignment/data/raw/sleep_gramic.csv', sep=',') + +# Zeige die Schlafdaten print("\nSchlafdaten:") print(sleep_data.head()) -# Sicherstellen, dass beide Datensätze nach Woche sortiert sind +# Schritt 4: Sicherstellen, dass beide Datensätze nach 'week' sortiert sind hr_data = hr_data.sort_values(by='Datum') sleep_data = sleep_data.sort_values(by='Datum') -# Kombinieren der beiden Datensätze anhand der 'week' Spalte +# Schritt 5: Kombiniere die beiden Datensätze anhand der 'week' Spalte combined_data = pd.merge(hr_data, sleep_data, on='Datum') -# Überprüfen der kombinierten Daten +# Zeige die kombinierten Daten print("\nKombinierte Daten:") print(combined_data.head()) -# Berechne die Korrelation zwischen dem durchschnittlichen Herzfrequenzwert ('avg_hr') und der Schlafdauer ('sleep_duration') +# Schritt 6: Berechne die Korrelation zwischen dem durchschnittlichen Herzfrequenzwert ('avg_hr') und der Schlafdauer ('sleep_duration') correlation = combined_data['avg_hr'].corr(combined_data['Durchschnittliche Dauer']) print(f"\nDie Korrelation zwischen der durchschnittlichen Herzfrequenz und der Schlafdauer ist: {correlation}") diff --git a/code/hr_data_cleaned.csv b/code/hr_data_cleaned.csv new file mode 100644 index 0000000..e30f4a3 --- /dev/null +++ b/code/hr_data_cleaned.csv @@ -0,0 +1,53 @@ +Datum;In Ruhe;Hoch +Okt 4-10;67.0;130.0 +Sep 27 - Okt 3;67.0;143.0 +Sep 20-26;66.0;149.0 +Sep 13-19;66.0;144.0 +Sep 6-12;62.0;132.0 +Aug 30 - Sep 5;64.0;141.0 +Aug 23-29;67.0;150.0 +Aug 16-22;63.0;143.0 +Aug 9-15;69.0;141.0 +Aug 2-8;67.0;140.0 +Jul 26 - Aug 1;67.0;147.0 +Jul 19-25;69.0;136.0 +Jul 12-18;66.0;151.0 +Jul 5-11;67.0;146.0 +Jun 28 - Jul 4;66.0;157.0 +Jun 21-27;64.0;141.0 +Jun 14-20;70.0;145.0 +Jun 7-13;69.0;134.0 +Mai 31 - Jun 6;70.0;139.0 +Mai 24-30;72.0;142.0 +Mai 17-23;72.0;135.0 +Mai 10-16;71.0;147.0 +Mai 3-9;73.0;142.0 +Apr 26 - Mai 2;69.0;151.0 +Apr 19-25;61.0;135.0 +Apr 12-18;58.0;140.0 +Apr 5-11;64.0;131.0 +Mrz 29 - Apr 4;63.0;139.0 +Mrz 22-28;65.0;135.0 +Mrz 15-21;66.0;137.0 +Mrz 8-14;62.0;136.0 +Mrz 1-7;70.0;134.0 +Feb 23-29;68.0;144.0 +Feb 16-22;71.0;132.0 +Feb 9-15;65.0;143.0 +Feb 2-8;66.0;133.0 +Jan 26 - Feb 1;59.0;142.0 +Jan 19-25;62.0;136.0 +Jan 12-18;60.0;134.0 +Jan 5-11;56.0;139.0 +Dez 29, 2023 - Jan 4, 2024;59.0;128.0 +Dez 22-28, 2023;52.0;124.0 +Dez 15-21, 2023;57.0;133.0 +Dez 8-14, 2023;65.0;133.0 +Dez 1-7, 2023;69.0;134.0 +Nov 24-30, 2023;68.0;139.0 +Nov 17-23, 2023;68.0;143.0 +Nov 10-16, 2023;64.0;144.0 +Nov 3-9, 2023;63.0;140.0 +Okt 27 - Nov 2, 2023;57.0;133.0 +Okt 20-26, 2023;55.0;138.0 +Okt 13-19, 2023;50.0;121.0