adding corelation.py, corelation_old.py, README.md, hr_gramic.csv and sleep_gramic.csv

master
TheOriginalGraLargeShrimpakaReaper 2024-10-16 20:48:05 +02:00
parent 8d575f2d56
commit bee98b90da
6 changed files with 218 additions and 1 deletions

View File

@ -18,4 +18,19 @@ Für die folgenden Aufträge dürfen Sie je nach Vorkenntnisse beliebige Tools (
## Problems
- Garmin Weekly Algorithmus unknown.
Reverse Engineering necessery
- Comparition between Garmin (Instict Solar 2X) and Withings (Steel HR Sport) not necessarely given
- Comparition between Garmin (Instict Solar 2X) and Withings (Steel HR Sport) not necessarely given
## Python Depencencis
-
```shell
pip install --upgrade pip
pip install matplotlib
pip install pandas
pip install pybtex
pip install requests
pip install pyyaml
pip install setuptools
pip install bs4
pip install requests
```

40
code/corelation.py Normal file
View File

@ -0,0 +1,40 @@
import pandas as pd
# Lade die CSV-Dateien
# Datei 1 mit Semikolon (;) separiert (HR-Daten)
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):")
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
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
print("\nHR-Daten (nach der Berechnung des Durchschnitts):")
print(hr_data.head())
# Überprüfen der ersten Zeilen der Schlafdaten
print("\nSchlafdaten:")
print(sleep_data.head())
# Sicherstellen, dass beide Datensätze nach Woche 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
combined_data = pd.merge(hr_data, sleep_data, on='Datum')
# Überprüfen der kombinierten Daten
print("\nKombinierte Daten:")
print(combined_data.head())
# 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}")

35
code/corelation_old.py Normal file
View File

@ -0,0 +1,35 @@
import pandas as pd
# Lade die CSV-Dateien
# Datei 1 mit Semikolon (;) separiert (HR-Daten)
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:")
print(hr_data.head())
print("\nSchlafdaten:")
print(sleep_data.head())
# Annahme: Beide Datensätze enthalten eine Spalte für Wochen (z.B. 'week')
# und die jeweiligen Werte (z.B. 'avg_hr' für Herzfrequenz und 'sleep_duration' für Schlafdauer)
# Sicherstellen, dass beide Datensätze nach Woche sortiert sind
hr_data = hr_data.sort_values(by='Datum')
sleep_data = sleep_data.sort_values(by='week')
# Kombinieren der beiden Datensätze anhand der 'week' Spalte
combined_data = pd.merge(hr_data, sleep_data, on='Datum')
# Überprüfen der kombinierten Daten
print("\nKombinierte Daten:")
print(combined_data.head())
# Berechne die Korrelation zwischen der durchschnittlichen Herzfrequenz (z.B. 'avg_hr')
# und der Schlafdauer (z.B. 'sleep_duration')
correlation = combined_data['avg_hr'].corr(combined_data['Durchschnittliche Dauer'])
print(f"\nDie Korrelation zwischen der Herzfrequenz und der Schlafdauer ist: {correlation}")

21
code/crawler.py Normal file
View File

@ -0,0 +1,21 @@
import requests
from bs4 import BeautifulSoup
import queue
import re
import time
import random
urls = queue.PriorityQueue()
urls.put((0.5, "https://www.scrapingcourse.com/ecommerce/"))
visited_urls = []
while not urls.empty():
_, current_url = urls.get()
soup = BeautifulSoup(get_html(current_url), "html.parser")
visited_urls.append(current_url)
crawl_page(soup, current_url, visited_urls, urls)
# if it is a product page:
# scrape_page(soup, url, products)
time.sleep(random.uniform(1, 3))

53
data/raw/hr_gramic.csv Normal file
View File

@ -0,0 +1,53 @@
Datum;In Ruhe;Hoch
Okt 4-10;67 bpm;130 bpm
Sep 27 - Okt 3;67 bpm;143 bpm
Sep 20-26;66 bpm;149 bpm
Sep 13-19;66 bpm;144 bpm
Sep 6-12;62 bpm;132 bpm
Aug 30 - Sep 5;64 bpm;141 bpm
Aug 23-29;67 bpm;150 bpm
Aug 16-22;63 bpm;143 bpm
Aug 9-15;69 bpm;141 bpm
Aug 2-8;67 bpm;140 bpm
Jul 26 - Aug 1;67 bpm;147 bpm
Jul 19-25;69 bpm;136 bpm
Jul 12-18;66 bpm;151 bpm
Jul 5-11;67 bpm;146 bpm
Jun 28 - Jul 4;66 bpm;157 bpm
Jun 21-27;64 bpm;141 bpm
Jun 14-20;70 bpm;145 bpm
Jun 7-13;69 bpm;134 bpm
Mai 31 - Jun 6;70 bpm;139 bpm
Mai 24-30;72 bpm;142 bpm
Mai 17-23;72 bpm;135 bpm
Mai 10-16;71 bpm;147 bpm
Mai 3-9;73 bpm;142 bpm
Apr 26 - Mai 2;69 bpm;151 bpm
Apr 19-25;61 bpm;135 bpm
Apr 12-18;58 bpm;140 bpm
Apr 5-11;64 bpm;131 bpm
Mrz 29 - Apr 4;63 bpm;139 bpm
Mrz 22-28;65 bpm;135 bpm
Mrz 15-21;66 bpm;137 bpm
Mrz 8-14;62 bpm;136 bpm
Mrz 1-7;70 bpm;134 bpm
Feb 23-29;68 bpm;144 bpm
Feb 16-22;71 bpm;132 bpm
Feb 9-15;65 bpm;143 bpm
Feb 2-8;66 bpm;133 bpm
Jan 26 - Feb 1;59 bpm;142 bpm
Jan 19-25;62 bpm;136 bpm
Jan 12-18;60 bpm;134 bpm
Jan 5-11;56 bpm;139 bpm
Dez 29, 2023 - Jan 4, 2024;59 bpm;128 bpm
Dez 22-28, 2023;52 bpm;124 bpm
Dez 15-21, 2023;57 bpm;133 bpm
Dez 8-14, 2023;65 bpm;133 bpm
Dez 1-7, 2023;69 bpm;134 bpm
Nov 24-30, 2023;68 bpm;139 bpm
Nov 17-23, 2023;68 bpm;143 bpm
Nov 10-16, 2023;64 bpm;144 bpm
Nov 3-9, 2023;63 bpm;140 bpm
Okt 27 - Nov 2, 2023;57 bpm;133 bpm
Okt 20-26, 2023;55 bpm;138 bpm
Okt 13-19, 2023;50 bpm;121 bpm
1 Datum In Ruhe Hoch
2 Okt 4-10 67 bpm 130 bpm
3 Sep 27 - Okt 3 67 bpm 143 bpm
4 Sep 20-26 66 bpm 149 bpm
5 Sep 13-19 66 bpm 144 bpm
6 Sep 6-12 62 bpm 132 bpm
7 Aug 30 - Sep 5 64 bpm 141 bpm
8 Aug 23-29 67 bpm 150 bpm
9 Aug 16-22 63 bpm 143 bpm
10 Aug 9-15 69 bpm 141 bpm
11 Aug 2-8 67 bpm 140 bpm
12 Jul 26 - Aug 1 67 bpm 147 bpm
13 Jul 19-25 69 bpm 136 bpm
14 Jul 12-18 66 bpm 151 bpm
15 Jul 5-11 67 bpm 146 bpm
16 Jun 28 - Jul 4 66 bpm 157 bpm
17 Jun 21-27 64 bpm 141 bpm
18 Jun 14-20 70 bpm 145 bpm
19 Jun 7-13 69 bpm 134 bpm
20 Mai 31 - Jun 6 70 bpm 139 bpm
21 Mai 24-30 72 bpm 142 bpm
22 Mai 17-23 72 bpm 135 bpm
23 Mai 10-16 71 bpm 147 bpm
24 Mai 3-9 73 bpm 142 bpm
25 Apr 26 - Mai 2 69 bpm 151 bpm
26 Apr 19-25 61 bpm 135 bpm
27 Apr 12-18 58 bpm 140 bpm
28 Apr 5-11 64 bpm 131 bpm
29 Mrz 29 - Apr 4 63 bpm 139 bpm
30 Mrz 22-28 65 bpm 135 bpm
31 Mrz 15-21 66 bpm 137 bpm
32 Mrz 8-14 62 bpm 136 bpm
33 Mrz 1-7 70 bpm 134 bpm
34 Feb 23-29 68 bpm 144 bpm
35 Feb 16-22 71 bpm 132 bpm
36 Feb 9-15 65 bpm 143 bpm
37 Feb 2-8 66 bpm 133 bpm
38 Jan 26 - Feb 1 59 bpm 142 bpm
39 Jan 19-25 62 bpm 136 bpm
40 Jan 12-18 60 bpm 134 bpm
41 Jan 5-11 56 bpm 139 bpm
42 Dez 29, 2023 - Jan 4, 2024 59 bpm 128 bpm
43 Dez 22-28, 2023 52 bpm 124 bpm
44 Dez 15-21, 2023 57 bpm 133 bpm
45 Dez 8-14, 2023 65 bpm 133 bpm
46 Dez 1-7, 2023 69 bpm 134 bpm
47 Nov 24-30, 2023 68 bpm 139 bpm
48 Nov 17-23, 2023 68 bpm 143 bpm
49 Nov 10-16, 2023 64 bpm 144 bpm
50 Nov 3-9, 2023 63 bpm 140 bpm
51 Okt 27 - Nov 2, 2023 57 bpm 133 bpm
52 Okt 20-26, 2023 55 bpm 138 bpm
53 Okt 13-19, 2023 50 bpm 121 bpm

53
data/raw/sleep_gramic.csv Normal file
View File

@ -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
1 Datum Ø Score Ø Qualität Durchschnittliche Dauer Ø Schlafenszeit Ø Aufstehzeit
2 Okt 10-16 46 Schlecht 6h 11min 1:28 7:50
3 Okt 3-9 56 Schlecht 6h 34min 0:33 7:22
4 Sep 26 - Okt 2 52 Schlecht 6h 23min 0:00 6:37
5 Sep 19-25 59 Schlecht 6h 41min 0:27 7:16
6 Sep 12-18 59 Schlecht 6h 18min 0:48 7:12
7 Sep 5-11 55 Schlecht 6h 19min 0:56 7:22
8 Aug 29 - Sep 4 66 Ausreichend 7h 1min 0:21 7:31
9 Aug 22-28 57 Schlecht 6h 17min 0:35 6:59
10 Aug 15-21 72 Ausreichend 6h 36min 0:38 7:25
11 Aug 8-14 56 Schlecht 5h 45min 0:16 6:06
12 Aug 1-7 64 Ausreichend 7h 4min 0:39 8:10
13 Jul 25-31 61 Ausreichend 6h 52min 0:40 7:56
14 Jul 18-24 54 Schlecht 6h 26min 2:16 9:19
15 Jul 11-17 74 Ausreichend 7h 10min 0:06 7:26
16 Jul 4-10 58 Schlecht 7h 35min 0:45 9:05
17 Jun 27 - Jul 3 60 Ausreichend 6h 8min 1:22 7:42
18 Jun 20-26 69 Ausreichend 6h 30min 0:19 6:58
19 Jun 13-19 59 Schlecht 6h 1min 0:25 6:33
20 Jun 6-12 60 Ausreichend 6h 22min 0:02 6:30
21 Mai 30 - Jun 5 60 Ausreichend 6h 33min 0:34 7:15
22 Mai 23-29 51 Schlecht 6h 47min 0:56 7:54
23 Mai 16-22 50 Schlecht 5h 51min 1:13 7:08
24 Mai 9-15 55 Schlecht 6h 21min 0:58 7:23
25 Mai 2-8 40 Schlecht 5h 36min 0:39 6:19
26 Apr 25 - Mai 1 55 Schlecht 6h 2min 1:18 7:26
27 Apr 18-24 56 Schlecht 6h 28min 3:11 9:55
28 Apr 11-17 56 Schlecht 6h 17min 1:23 7:51
29 Apr 4-10 62 Ausreichend 6h 18min 0:39 7:10
30 Mrz 28 - Apr 3 68 Ausreichend 6h 50min 1:45 8:51
31 Mrz 21-27 60 Ausreichend 6h 9min 0:56 7:13
32 Mrz 14-20 54 Schlecht 6h 11min 1:03 7:24
33 Mrz 7-13 54 Schlecht 6h 22min 0:49 7:17
34 Feb 29 - Mrz 6 50 Schlecht 6h 4min 0:56 7:09
35 Feb 22-28 61 Ausreichend 7h 11min 0:08 7:25
36 Feb 15-21 44 Schlecht 6h 58min 0:19 7:51
37 Feb 8-14 50 Schlecht 8h 17min 0:09 8:47
38 Feb 1-7 43 Schlecht 6h 12min 1:06 7:25
39 Jan 25-31 57 Schlecht 7h 21min 1:17 8:40
40 Jan 18-24 51 Schlecht 6h 25min 0:56 7:26
41 Jan 11-17 50 Schlecht 6h 27min 1:36 8:12
42 Jan 4-10 59 Schlecht 6h 44min 1:26 8:24
43 Dez 28 2023 - Jan 3 2024 54 Schlecht 7h 2min
44 Dez 21-27 2023 55 Schlecht 7h 16min 0:38
45 Dez 14-20 2023 56 Schlecht 7h 17min 0:31
46 Dez 7-13 2023 44 Schlecht 7h 53min 23:46
47 Nov 30 - Dez 6 2023 48 Schlecht 6h 51min 0:33
48 Nov 23-29 2023 48 Schlecht 7h 11min 0:21
49 Nov 16-22 2023 53 Schlecht 7h 7min 0:23
50 Nov 9-15 2023 47 Schlecht 7h 5min 0:19
51 Nov 2-8 2023 50 Schlecht 6h 2min 0:00
52 Okt 26 - Nov 1 2023 59 Schlecht 6h 39min 0:14
53 Okt 19-25 2023 48 Schlecht 6h 17min 0:46