diff --git a/.gitignore b/.gitignore index d2c98c52..57901c19 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ notebooks/.env notebooks/.DS_Store .DS_Store *.in +.virtual_documents/ +anaconda_projects/ diff --git a/README.md b/README.md index f637438f..f684bdd6 100644 --- a/README.md +++ b/README.md @@ -1,77 +1,47 @@ -# Project overview -... +## 💤 Sleep Health & Lifestyle Analysis +#### Business Case: Predicting Sleep Disorders -# Installation -1. **Clone the repository**: +### 📌 Project Overview +This project analyzes a Sleep Health & Lifestyle dataset to identify key factors associated with sleep disorders (Insomnia and Sleep Apnea). +The goal is to understand how lifestyle, physiological metrics, and stress levels contribute to sleep disorder risk and to support early intervention strategies. -```bash -git clone https://github.com/YourUsername/repository_name.git -``` -2. **Install UV** +### 🎯 Business Problem +Sleep disorders increase medical costs, stress, and reduce quality of life. +Identifying high-risk individuals early enables: +- Preventive healthcare +- Reduced diagnosis costs +- Targeted wellbeing programs -If you're a MacOS/Linux user type: -```bash -curl -LsSf https://astral.sh/uv/install.sh | sh -``` +### ❓ Research Questions +- Which lifestyle and physiological factors correlate with sleep disorders? +- Can stress, BMI, activity, and sleep patterns predict disorder presence? +- What differentiates insomnia from sleep apnea? -If you're a Windows user open an Anaconda Powershell Prompt and type : -```bash -powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" -``` +### 🧪 Hypotheses +#### Primary Hypothesis (H1) +Individuals with high stress, high BMI, low sleep duration, and poor sleep quality are significantly more likely to have a sleep disorder. +**H0:** Sleep disorder presence is independent of these factors. -3. **Create an environment** +#### Secondary Hypotheses +- **H1a:** Obesity increases likelihood of sleep apnea. +- **H1b:** Higher stress correlates with insomnia. +- **H1c:** Sleeping <6 hours increases disorder risk. +- **H1d:** Low physical activity (<40 min/day) increases disorder prevalence. +- **H1e:** High heart rate / BP increases apnea risk. -```bash -uv venv -``` -3. **Activate the environment** +### 🧹 Data Cleaning Summary +- Checked for missing values, incorrect data types, and duplicates. +- Standardized column names and trimmed string formatting. +- Normalized inconsistent categories (e.g., "Normal" vs "Normal Weight"). +- Split Blood Pressure into numeric Systolic and Diastolic columns. +- Converted all relevant columns to numeric types. +- Filled missing Sleep Disorder values with "No Disorder". +- Removed duplicate rows (242 duplicates dropped). -If you're a MacOS/Linux user type (if you're using a bash shell): +Final result: a clean, consistent dataset ready for analysis. -```bash -source ./venv/bin/activate -``` - -If you're a MacOS/Linux user type (if you're using a csh/tcsh shell): - -```bash -source ./venv/bin/activate.csh -``` - -If you're a Windows user type: - -```bash -.\venv\Scripts\activate -``` - -4. **Install dependencies**: - -```bash -uv pip install -r requirements.txt -``` - -# Questions -... - -# Dataset -... - -## Main dataset issues - -- ... -- ... -- ... - -## Solutions for the dataset issues -... - -# Conclussions -... - -# Next steps -... diff --git a/archive.zip b/archive.zip new file mode 100644 index 00000000..32940cfe Binary files /dev/null and b/archive.zip differ diff --git a/config.yaml b/config.yaml index dc28ac67..82e339ee 100644 --- a/config.yaml +++ b/config.yaml @@ -1,5 +1,5 @@ input_data: - file: "../data/raw/raw_data_file.csv" + file: "../data/raw/sleep_health_and_lifestyle_dataset.csv" output_data: - file: "../data/clean/cleaned_data_file.csv" + file: "../data/clean/sleep_health_project_clean.csv" diff --git a/data/clean/cleaned_data_file.csv b/data/clean/cleaned_data_file.csv deleted file mode 100644 index e69de29b..00000000 diff --git a/data/clean/sleep_health_project_clean.csv b/data/clean/sleep_health_project_clean.csv new file mode 100644 index 00000000..cc93b280 --- /dev/null +++ b/data/clean/sleep_health_project_clean.csv @@ -0,0 +1,133 @@ +person_id,gender,age,occupation,sleep_duration,quality_of_sleep,physical_activity_level,stress_level,bmi_category,blood_pressure,heart_rate,daily_steps,sleep_disorder,systolic,diastolic +1,Male,27,Software Engineer,6.1,6,42,6,Overweight,126/83,77,4200,No Disorder,126,83 +2,Male,28,Doctor,6.2,6,60,8,Normal,125/80,75,10000,No Disorder,125,80 +4,Male,28,Sales Representative,5.9,4,30,8,Obese,140/90,85,3000,Sleep Apnea,140,90 +6,Male,28,Software Engineer,5.9,4,30,8,Obese,140/90,85,3000,Insomnia,140,90 +7,Male,29,Teacher,6.3,6,40,7,Obese,140/90,82,3500,Insomnia,140,90 +8,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +11,Male,29,Doctor,6.1,6,30,8,Normal,120/80,70,8000,No Disorder,120,80 +14,Male,29,Doctor,6.0,6,30,8,Normal,120/80,70,8000,No Disorder,120,80 +17,Female,29,Nurse,6.5,5,40,7,Normal,132/87,80,4000,Sleep Apnea,132,87 +18,Male,29,Doctor,6.0,6,30,8,Normal,120/80,70,8000,Sleep Apnea,120,80 +19,Female,29,Nurse,6.5,5,40,7,Normal,132/87,80,4000,Insomnia,132,87 +20,Male,30,Doctor,7.6,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +21,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +25,Male,30,Doctor,7.8,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +26,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +31,Female,30,Nurse,6.4,5,35,7,Normal,130/86,78,4100,Sleep Apnea,130,86 +32,Female,30,Nurse,6.4,5,35,7,Normal,130/86,78,4100,Insomnia,130,86 +33,Female,31,Nurse,7.9,8,75,4,Normal,117/76,69,6800,No Disorder,117,76 +34,Male,31,Doctor,6.1,6,30,8,Normal,125/80,72,5000,No Disorder,125,80 +35,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +38,Male,31,Doctor,7.6,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +44,Male,31,Doctor,7.8,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +50,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,Sleep Apnea,120,80 +51,Male,32,Engineer,7.5,8,45,3,Normal,120/80,70,8000,No Disorder,120,80 +53,Male,32,Doctor,6.0,6,30,8,Normal,125/80,72,5000,No Disorder,125,80 +54,Male,32,Doctor,7.6,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +57,Male,32,Doctor,7.7,7,75,6,Normal,120/80,70,8000,No Disorder,120,80 +63,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,No Disorder,125,80 +67,Male,32,Accountant,7.2,8,50,6,Normal,118/76,68,7000,No Disorder,118,76 +68,Male,33,Doctor,6.0,6,30,8,Normal,125/80,72,5000,Insomnia,125,80 +69,Female,33,Scientist,6.2,6,50,6,Overweight,128/85,76,5500,No Disorder,128,85 +71,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,No Disorder,125,80 +75,Male,33,Doctor,6.0,6,30,8,Normal,125/80,72,5000,No Disorder,125,80 +81,Female,34,Scientist,5.8,4,32,8,Overweight,131/86,81,5200,Sleep Apnea,131,86 +83,Male,35,Teacher,6.7,7,40,5,Overweight,128/84,70,5600,No Disorder,128,84 +85,Male,35,Software Engineer,7.5,8,60,5,Normal,120/80,70,8000,No Disorder,120,80 +86,Female,35,Accountant,7.2,8,60,4,Normal,115/75,68,7000,No Disorder,115,75 +87,Male,35,Engineer,7.2,8,60,4,Normal,125/80,65,5000,No Disorder,125,80 +89,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,No Disorder,125,80 +94,Male,35,Lawyer,7.4,7,60,5,Obese,135/88,84,3300,Sleep Apnea,135,88 +95,Female,36,Accountant,7.2,8,60,4,Normal,115/75,68,7000,Insomnia,115,75 +96,Female,36,Accountant,7.1,8,60,4,Normal,115/75,68,7000,No Disorder,115,75 +97,Female,36,Accountant,7.2,8,60,4,Normal,115/75,68,7000,No Disorder,115,75 +99,Female,36,Teacher,7.1,8,60,4,Normal,115/75,68,7000,No Disorder,115,75 +101,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,No Disorder,115,75 +104,Male,36,Teacher,6.6,5,35,7,Overweight,129/84,74,4800,Sleep Apnea,129,84 +105,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,Sleep Apnea,115,75 +106,Male,36,Teacher,6.6,5,35,7,Overweight,129/84,74,4800,Insomnia,129,84 +107,Female,37,Nurse,6.1,6,42,6,Overweight,126/83,77,4200,No Disorder,126,83 +108,Male,37,Engineer,7.8,8,70,4,Normal,120/80,68,7000,No Disorder,120,80 +110,Male,37,Lawyer,7.4,8,60,5,Normal,130/85,68,8000,No Disorder,130,85 +111,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,No Disorder,115,75 +126,Female,37,Nurse,7.5,8,60,4,Normal,120/80,70,8000,No Disorder,120,80 +127,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,No Disorder,130,85 +128,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,No Disorder,115,75 +138,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,No Disorder,130,85 +145,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,Sleep Apnea,130,85 +146,Female,38,Lawyer,7.4,7,60,5,Obese,135/88,84,3300,Sleep Apnea,135,88 +147,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,Insomnia,130,85 +148,Male,39,Engineer,6.5,5,40,7,Overweight,132/87,80,4000,Insomnia,132,87 +149,Female,39,Lawyer,6.9,7,50,6,Normal,128/85,75,5500,No Disorder,128,85 +150,Female,39,Accountant,8.0,9,80,3,Normal,115/78,67,7500,No Disorder,115,78 +152,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,No Disorder,130,85 +162,Female,40,Accountant,7.2,8,55,6,Normal,119/77,73,7300,No Disorder,119,77 +164,Male,40,Lawyer,7.9,8,90,5,Normal,130/85,68,8000,No Disorder,130,85 +166,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,Insomnia,130,85 +167,Male,41,Engineer,7.3,8,70,6,Normal,121/79,72,6200,No Disorder,121,79 +168,Male,41,Lawyer,7.1,7,55,6,Overweight,125/82,72,6000,No Disorder,125,82 +170,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,No Disorder,130,85 +175,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,No Disorder,130,85 +178,Male,42,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +179,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,No Disorder,130,85 +185,Female,42,Teacher,6.8,6,45,7,Overweight,130/85,78,5000,Sleep Apnea,130,85 +187,Female,43,Teacher,6.7,7,45,4,Overweight,135/90,65,6000,Insomnia,135,90 +188,Male,43,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +190,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +192,Male,43,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +202,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Insomnia,130,85 +204,Male,43,Engineer,6.9,6,47,7,Normal,117/76,69,6800,No Disorder,117,76 +205,Male,43,Engineer,7.6,8,75,4,Overweight,122/80,68,6800,No Disorder,122,80 +206,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,No Disorder,130,85 +210,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,No Disorder,130,85 +219,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Sleep Apnea,130,85 +220,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Sleep Apnea,130,85 +221,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia,135,90 +222,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +223,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +238,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia,135,90 +248,Male,44,Engineer,6.8,7,45,7,Overweight,130/85,78,5000,Insomnia,130,85 +249,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,No Disorder,130,85 +250,Male,44,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,No Disorder,130,85 +251,Female,45,Teacher,6.8,7,30,6,Overweight,135/90,65,6000,Insomnia,135,90 +253,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia,135,90 +257,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia,135,90 +262,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,No Disorder,135,90 +264,Female,45,Manager,6.9,7,55,5,Overweight,125/82,75,5500,No Disorder,125,82 +265,Male,48,Doctor,7.3,7,65,5,Obese,142/92,83,3500,Insomnia,142,92 +266,Female,48,Nurse,5.9,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +268,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,No Disorder,140,95 +269,Female,49,Nurse,6.0,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +270,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +274,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +277,Male,49,Doctor,8.1,9,85,3,Obese,139/91,86,3700,Sleep Apnea,139,91 +279,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Insomnia,140,95 +280,Female,50,Engineer,8.3,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +281,Female,50,Nurse,6.0,6,90,8,Overweight,140/95,75,10000,No Disorder,140,95 +282,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +283,Female,50,Nurse,6.0,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +299,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +303,Female,51,Nurse,7.1,7,55,6,Normal,125/82,72,6000,No Disorder,125,82 +304,Female,51,Nurse,6.0,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +305,Female,51,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea,140,95 +307,Female,52,Accountant,6.5,7,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +309,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia,130,85 +313,Female,52,Engineer,8.4,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +316,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,Insomnia,125,80 +317,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +319,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +325,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +333,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +339,Female,54,Engineer,8.5,9,30,3,Normal,125/80,65,5000,No Disorder,125,80 +340,Female,55,Nurse,8.1,9,75,4,Overweight,140/95,72,5000,Sleep Apnea,140,95 +342,Female,56,Doctor,8.2,9,90,3,Normal,118/75,65,10000,No Disorder,118,75 +344,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,No Disorder,140,95 +345,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea,140,95 +350,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea,140,95 +353,Female,58,Nurse,8.0,9,75,3,Overweight,140/95,68,7000,Sleep Apnea,140,95 +359,Female,59,Nurse,8.0,9,75,3,Overweight,140/95,68,7000,No Disorder,140,95 +360,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,No Disorder,140,95 +361,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea,140,95 +365,Female,59,Nurse,8.0,9,75,3,Overweight,140/95,68,7000,Sleep Apnea,140,95 +367,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea,140,95 diff --git a/data/raw/Sleep_health_and_lifestyle_dataset.csv b/data/raw/Sleep_health_and_lifestyle_dataset.csv new file mode 100644 index 00000000..f0be22ac --- /dev/null +++ b/data/raw/Sleep_health_and_lifestyle_dataset.csv @@ -0,0 +1,375 @@ +Person ID,Gender,Age,Occupation,Sleep Duration,Quality of Sleep,Physical Activity Level,Stress Level,BMI Category,Blood Pressure,Heart Rate,Daily Steps,Sleep Disorder +1,Male,27,Software Engineer,6.1,6,42,6,Overweight,126/83,77,4200,None +2,Male,28,Doctor,6.2,6,60,8,Normal,125/80,75,10000,None +3,Male,28,Doctor,6.2,6,60,8,Normal,125/80,75,10000,None +4,Male,28,Sales Representative,5.9,4,30,8,Obese,140/90,85,3000,Sleep Apnea +5,Male,28,Sales Representative,5.9,4,30,8,Obese,140/90,85,3000,Sleep Apnea +6,Male,28,Software Engineer,5.9,4,30,8,Obese,140/90,85,3000,Insomnia +7,Male,29,Teacher,6.3,6,40,7,Obese,140/90,82,3500,Insomnia +8,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +9,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +10,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +11,Male,29,Doctor,6.1,6,30,8,Normal,120/80,70,8000,None +12,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +13,Male,29,Doctor,6.1,6,30,8,Normal,120/80,70,8000,None +14,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,None +15,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,None +16,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,None +17,Female,29,Nurse,6.5,5,40,7,Normal Weight,132/87,80,4000,Sleep Apnea +18,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,Sleep Apnea +19,Female,29,Nurse,6.5,5,40,7,Normal Weight,132/87,80,4000,Insomnia +20,Male,30,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +21,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +22,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +23,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +24,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +25,Male,30,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +26,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +27,Male,30,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +28,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +29,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +30,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +31,Female,30,Nurse,6.4,5,35,7,Normal Weight,130/86,78,4100,Sleep Apnea +32,Female,30,Nurse,6.4,5,35,7,Normal Weight,130/86,78,4100,Insomnia +33,Female,31,Nurse,7.9,8,75,4,Normal Weight,117/76,69,6800,None +34,Male,31,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +35,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +36,Male,31,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +37,Male,31,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +38,Male,31,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +39,Male,31,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +40,Male,31,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +41,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +42,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +43,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +44,Male,31,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +45,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +46,Male,31,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +47,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +48,Male,31,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +49,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +50,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,Sleep Apnea +51,Male,32,Engineer,7.5,8,45,3,Normal,120/80,70,8000,None +52,Male,32,Engineer,7.5,8,45,3,Normal,120/80,70,8000,None +53,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +54,Male,32,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +55,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +56,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +57,Male,32,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +58,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +59,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +60,Male,32,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +61,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +62,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +63,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +64,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +65,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +66,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +67,Male,32,Accountant,7.2,8,50,6,Normal Weight,118/76,68,7000,None +68,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,Insomnia +69,Female,33,Scientist,6.2,6,50,6,Overweight,128/85,76,5500,None +70,Female,33,Scientist,6.2,6,50,6,Overweight,128/85,76,5500,None +71,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +72,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +73,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +74,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +75,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +76,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +77,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +78,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +79,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +80,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +81,Female,34,Scientist,5.8,4,32,8,Overweight,131/86,81,5200,Sleep Apnea +82,Female,34,Scientist,5.8,4,32,8,Overweight,131/86,81,5200,Sleep Apnea +83,Male,35,Teacher,6.7,7,40,5,Overweight,128/84,70,5600,None +84,Male,35,Teacher,6.7,7,40,5,Overweight,128/84,70,5600,None +85,Male,35,Software Engineer,7.5,8,60,5,Normal Weight,120/80,70,8000,None +86,Female,35,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +87,Male,35,Engineer,7.2,8,60,4,Normal,125/80,65,5000,None +88,Male,35,Engineer,7.2,8,60,4,Normal,125/80,65,5000,None +89,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +90,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +91,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +92,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +93,Male,35,Software Engineer,7.5,8,60,5,Normal Weight,120/80,70,8000,None +94,Male,35,Lawyer,7.4,7,60,5,Obese,135/88,84,3300,Sleep Apnea +95,Female,36,Accountant,7.2,8,60,4,Normal,115/75,68,7000,Insomnia +96,Female,36,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +97,Female,36,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +98,Female,36,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +99,Female,36,Teacher,7.1,8,60,4,Normal,115/75,68,7000,None +100,Female,36,Teacher,7.1,8,60,4,Normal,115/75,68,7000,None +101,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,None +102,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,None +103,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,None +104,Male,36,Teacher,6.6,5,35,7,Overweight,129/84,74,4800,Sleep Apnea +105,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,Sleep Apnea +106,Male,36,Teacher,6.6,5,35,7,Overweight,129/84,74,4800,Insomnia +107,Female,37,Nurse,6.1,6,42,6,Overweight,126/83,77,4200,None +108,Male,37,Engineer,7.8,8,70,4,Normal Weight,120/80,68,7000,None +109,Male,37,Engineer,7.8,8,70,4,Normal Weight,120/80,68,7000,None +110,Male,37,Lawyer,7.4,8,60,5,Normal,130/85,68,8000,None +111,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +112,Male,37,Lawyer,7.4,8,60,5,Normal,130/85,68,8000,None +113,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +114,Male,37,Lawyer,7.4,8,60,5,Normal,130/85,68,8000,None +115,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +116,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +117,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +118,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +119,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +120,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +121,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +122,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +123,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +124,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +125,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +126,Female,37,Nurse,7.5,8,60,4,Normal Weight,120/80,70,8000,None +127,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +128,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +129,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +130,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +131,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +132,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +133,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +134,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +135,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +136,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +137,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +138,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,None +139,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +140,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,None +141,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +142,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,None +143,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +144,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +145,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,Sleep Apnea +146,Female,38,Lawyer,7.4,7,60,5,Obese,135/88,84,3300,Sleep Apnea +147,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,Insomnia +148,Male,39,Engineer,6.5,5,40,7,Overweight,132/87,80,4000,Insomnia +149,Female,39,Lawyer,6.9,7,50,6,Normal Weight,128/85,75,5500,None +150,Female,39,Accountant,8,9,80,3,Normal Weight,115/78,67,7500,None +151,Female,39,Accountant,8,9,80,3,Normal Weight,115/78,67,7500,None +152,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +153,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +154,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +155,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +156,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +157,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +158,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +159,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +160,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +161,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +162,Female,40,Accountant,7.2,8,55,6,Normal Weight,119/77,73,7300,None +163,Female,40,Accountant,7.2,8,55,6,Normal Weight,119/77,73,7300,None +164,Male,40,Lawyer,7.9,8,90,5,Normal,130/85,68,8000,None +165,Male,40,Lawyer,7.9,8,90,5,Normal,130/85,68,8000,None +166,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,Insomnia +167,Male,41,Engineer,7.3,8,70,6,Normal Weight,121/79,72,6200,None +168,Male,41,Lawyer,7.1,7,55,6,Overweight,125/82,72,6000,None +169,Male,41,Lawyer,7.1,7,55,6,Overweight,125/82,72,6000,None +170,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +171,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +172,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +173,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +174,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +175,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,None +176,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,None +177,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,None +178,Male,42,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +179,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +180,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +181,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +182,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +183,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +184,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +185,Female,42,Teacher,6.8,6,45,7,Overweight,130/85,78,5000,Sleep Apnea +186,Female,42,Teacher,6.8,6,45,7,Overweight,130/85,78,5000,Sleep Apnea +187,Female,43,Teacher,6.7,7,45,4,Overweight,135/90,65,6000,Insomnia +188,Male,43,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +189,Female,43,Teacher,6.7,7,45,4,Overweight,135/90,65,6000,Insomnia +190,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +191,Female,43,Teacher,6.7,7,45,4,Overweight,135/90,65,6000,Insomnia +192,Male,43,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +193,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +194,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +195,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +196,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +197,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +198,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +199,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +200,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +201,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +202,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Insomnia +203,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Insomnia +204,Male,43,Engineer,6.9,6,47,7,Normal Weight,117/76,69,6800,None +205,Male,43,Engineer,7.6,8,75,4,Overweight,122/80,68,6800,None +206,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +207,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +208,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +209,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +210,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +211,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +212,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +213,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +214,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +215,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +216,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +217,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +218,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +219,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Sleep Apnea +220,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Sleep Apnea +221,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +222,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +223,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +224,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +225,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +226,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +227,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +228,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +229,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +230,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +231,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +232,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +233,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +234,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +235,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +236,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +237,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +238,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +239,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +240,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +241,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +242,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +243,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +244,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +245,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +246,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +247,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +248,Male,44,Engineer,6.8,7,45,7,Overweight,130/85,78,5000,Insomnia +249,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,None +250,Male,44,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,None +251,Female,45,Teacher,6.8,7,30,6,Overweight,135/90,65,6000,Insomnia +252,Female,45,Teacher,6.8,7,30,6,Overweight,135/90,65,6000,Insomnia +253,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +254,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +255,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +256,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +257,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +258,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +259,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +260,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +261,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +262,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,None +263,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,None +264,Female,45,Manager,6.9,7,55,5,Overweight,125/82,75,5500,None +265,Male,48,Doctor,7.3,7,65,5,Obese,142/92,83,3500,Insomnia +266,Female,48,Nurse,5.9,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +267,Male,48,Doctor,7.3,7,65,5,Obese,142/92,83,3500,Insomnia +268,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,None +269,Female,49,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +270,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +271,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +272,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +273,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +274,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +275,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +276,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +277,Male,49,Doctor,8.1,9,85,3,Obese,139/91,86,3700,Sleep Apnea +278,Male,49,Doctor,8.1,9,85,3,Obese,139/91,86,3700,Sleep Apnea +279,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Insomnia +280,Female,50,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +281,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,None +282,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +283,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +284,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +285,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +286,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +287,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +288,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +289,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +290,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +291,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +292,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +293,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +294,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +295,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +296,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +297,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +298,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +299,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +300,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +301,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +302,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +303,Female,51,Nurse,7.1,7,55,6,Normal Weight,125/82,72,6000,None +304,Female,51,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +305,Female,51,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +306,Female,51,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +307,Female,52,Accountant,6.5,7,45,7,Overweight,130/85,72,6000,Insomnia +308,Female,52,Accountant,6.5,7,45,7,Overweight,130/85,72,6000,Insomnia +309,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +310,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +311,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +312,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +313,Female,52,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +314,Female,52,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +315,Female,52,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +316,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,Insomnia +317,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +318,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +319,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +320,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +321,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +322,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +323,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +324,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +325,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +326,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +327,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +328,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +329,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +330,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +331,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +332,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +333,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +334,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +335,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +336,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +337,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +338,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +339,Female,54,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +340,Female,55,Nurse,8.1,9,75,4,Overweight,140/95,72,5000,Sleep Apnea +341,Female,55,Nurse,8.1,9,75,4,Overweight,140/95,72,5000,Sleep Apnea +342,Female,56,Doctor,8.2,9,90,3,Normal Weight,118/75,65,10000,None +343,Female,56,Doctor,8.2,9,90,3,Normal Weight,118/75,65,10000,None +344,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,None +345,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +346,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +347,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +348,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +349,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +350,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +351,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +352,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +353,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +354,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +355,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +356,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +357,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +358,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +359,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,None +360,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,None +361,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +362,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +363,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +364,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +365,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +366,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +367,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +368,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +369,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +370,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +371,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +372,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +373,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +374,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea \ No newline at end of file diff --git a/data/raw/raw_data_file.csv b/data/raw/raw_data_file.csv deleted file mode 100644 index e69de29b..00000000 diff --git a/data/raw/sleep_health_and_lifestyle_dataset.csv b/data/raw/sleep_health_and_lifestyle_dataset.csv new file mode 100644 index 00000000..f0be22ac --- /dev/null +++ b/data/raw/sleep_health_and_lifestyle_dataset.csv @@ -0,0 +1,375 @@ +Person ID,Gender,Age,Occupation,Sleep Duration,Quality of Sleep,Physical Activity Level,Stress Level,BMI Category,Blood Pressure,Heart Rate,Daily Steps,Sleep Disorder +1,Male,27,Software Engineer,6.1,6,42,6,Overweight,126/83,77,4200,None +2,Male,28,Doctor,6.2,6,60,8,Normal,125/80,75,10000,None +3,Male,28,Doctor,6.2,6,60,8,Normal,125/80,75,10000,None +4,Male,28,Sales Representative,5.9,4,30,8,Obese,140/90,85,3000,Sleep Apnea +5,Male,28,Sales Representative,5.9,4,30,8,Obese,140/90,85,3000,Sleep Apnea +6,Male,28,Software Engineer,5.9,4,30,8,Obese,140/90,85,3000,Insomnia +7,Male,29,Teacher,6.3,6,40,7,Obese,140/90,82,3500,Insomnia +8,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +9,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +10,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +11,Male,29,Doctor,6.1,6,30,8,Normal,120/80,70,8000,None +12,Male,29,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +13,Male,29,Doctor,6.1,6,30,8,Normal,120/80,70,8000,None +14,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,None +15,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,None +16,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,None +17,Female,29,Nurse,6.5,5,40,7,Normal Weight,132/87,80,4000,Sleep Apnea +18,Male,29,Doctor,6,6,30,8,Normal,120/80,70,8000,Sleep Apnea +19,Female,29,Nurse,6.5,5,40,7,Normal Weight,132/87,80,4000,Insomnia +20,Male,30,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +21,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +22,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +23,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +24,Male,30,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +25,Male,30,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +26,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +27,Male,30,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +28,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +29,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +30,Male,30,Doctor,7.9,7,75,6,Normal,120/80,70,8000,None +31,Female,30,Nurse,6.4,5,35,7,Normal Weight,130/86,78,4100,Sleep Apnea +32,Female,30,Nurse,6.4,5,35,7,Normal Weight,130/86,78,4100,Insomnia +33,Female,31,Nurse,7.9,8,75,4,Normal Weight,117/76,69,6800,None +34,Male,31,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +35,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +36,Male,31,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +37,Male,31,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +38,Male,31,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +39,Male,31,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +40,Male,31,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +41,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +42,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +43,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +44,Male,31,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +45,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +46,Male,31,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +47,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +48,Male,31,Doctor,7.8,7,75,6,Normal,120/80,70,8000,None +49,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +50,Male,31,Doctor,7.7,7,75,6,Normal,120/80,70,8000,Sleep Apnea +51,Male,32,Engineer,7.5,8,45,3,Normal,120/80,70,8000,None +52,Male,32,Engineer,7.5,8,45,3,Normal,120/80,70,8000,None +53,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +54,Male,32,Doctor,7.6,7,75,6,Normal,120/80,70,8000,None +55,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +56,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +57,Male,32,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +58,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +59,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +60,Male,32,Doctor,7.7,7,75,6,Normal,120/80,70,8000,None +61,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +62,Male,32,Doctor,6,6,30,8,Normal,125/80,72,5000,None +63,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +64,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +65,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +66,Male,32,Doctor,6.2,6,30,8,Normal,125/80,72,5000,None +67,Male,32,Accountant,7.2,8,50,6,Normal Weight,118/76,68,7000,None +68,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,Insomnia +69,Female,33,Scientist,6.2,6,50,6,Overweight,128/85,76,5500,None +70,Female,33,Scientist,6.2,6,50,6,Overweight,128/85,76,5500,None +71,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +72,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +73,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +74,Male,33,Doctor,6.1,6,30,8,Normal,125/80,72,5000,None +75,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +76,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +77,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +78,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +79,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +80,Male,33,Doctor,6,6,30,8,Normal,125/80,72,5000,None +81,Female,34,Scientist,5.8,4,32,8,Overweight,131/86,81,5200,Sleep Apnea +82,Female,34,Scientist,5.8,4,32,8,Overweight,131/86,81,5200,Sleep Apnea +83,Male,35,Teacher,6.7,7,40,5,Overweight,128/84,70,5600,None +84,Male,35,Teacher,6.7,7,40,5,Overweight,128/84,70,5600,None +85,Male,35,Software Engineer,7.5,8,60,5,Normal Weight,120/80,70,8000,None +86,Female,35,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +87,Male,35,Engineer,7.2,8,60,4,Normal,125/80,65,5000,None +88,Male,35,Engineer,7.2,8,60,4,Normal,125/80,65,5000,None +89,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +90,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +91,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +92,Male,35,Engineer,7.3,8,60,4,Normal,125/80,65,5000,None +93,Male,35,Software Engineer,7.5,8,60,5,Normal Weight,120/80,70,8000,None +94,Male,35,Lawyer,7.4,7,60,5,Obese,135/88,84,3300,Sleep Apnea +95,Female,36,Accountant,7.2,8,60,4,Normal,115/75,68,7000,Insomnia +96,Female,36,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +97,Female,36,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +98,Female,36,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +99,Female,36,Teacher,7.1,8,60,4,Normal,115/75,68,7000,None +100,Female,36,Teacher,7.1,8,60,4,Normal,115/75,68,7000,None +101,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,None +102,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,None +103,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,None +104,Male,36,Teacher,6.6,5,35,7,Overweight,129/84,74,4800,Sleep Apnea +105,Female,36,Teacher,7.2,8,60,4,Normal,115/75,68,7000,Sleep Apnea +106,Male,36,Teacher,6.6,5,35,7,Overweight,129/84,74,4800,Insomnia +107,Female,37,Nurse,6.1,6,42,6,Overweight,126/83,77,4200,None +108,Male,37,Engineer,7.8,8,70,4,Normal Weight,120/80,68,7000,None +109,Male,37,Engineer,7.8,8,70,4,Normal Weight,120/80,68,7000,None +110,Male,37,Lawyer,7.4,8,60,5,Normal,130/85,68,8000,None +111,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +112,Male,37,Lawyer,7.4,8,60,5,Normal,130/85,68,8000,None +113,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +114,Male,37,Lawyer,7.4,8,60,5,Normal,130/85,68,8000,None +115,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +116,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +117,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +118,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +119,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +120,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +121,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +122,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +123,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +124,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +125,Female,37,Accountant,7.2,8,60,4,Normal,115/75,68,7000,None +126,Female,37,Nurse,7.5,8,60,4,Normal Weight,120/80,70,8000,None +127,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +128,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +129,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +130,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +131,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +132,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +133,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +134,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +135,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +136,Male,38,Lawyer,7.3,8,60,5,Normal,130/85,68,8000,None +137,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +138,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,None +139,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +140,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,None +141,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +142,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,None +143,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +144,Female,38,Accountant,7.1,8,60,4,Normal,115/75,68,7000,None +145,Male,38,Lawyer,7.1,8,60,5,Normal,130/85,68,8000,Sleep Apnea +146,Female,38,Lawyer,7.4,7,60,5,Obese,135/88,84,3300,Sleep Apnea +147,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,Insomnia +148,Male,39,Engineer,6.5,5,40,7,Overweight,132/87,80,4000,Insomnia +149,Female,39,Lawyer,6.9,7,50,6,Normal Weight,128/85,75,5500,None +150,Female,39,Accountant,8,9,80,3,Normal Weight,115/78,67,7500,None +151,Female,39,Accountant,8,9,80,3,Normal Weight,115/78,67,7500,None +152,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +153,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +154,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +155,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +156,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +157,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +158,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +159,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +160,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +161,Male,39,Lawyer,7.2,8,60,5,Normal,130/85,68,8000,None +162,Female,40,Accountant,7.2,8,55,6,Normal Weight,119/77,73,7300,None +163,Female,40,Accountant,7.2,8,55,6,Normal Weight,119/77,73,7300,None +164,Male,40,Lawyer,7.9,8,90,5,Normal,130/85,68,8000,None +165,Male,40,Lawyer,7.9,8,90,5,Normal,130/85,68,8000,None +166,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,Insomnia +167,Male,41,Engineer,7.3,8,70,6,Normal Weight,121/79,72,6200,None +168,Male,41,Lawyer,7.1,7,55,6,Overweight,125/82,72,6000,None +169,Male,41,Lawyer,7.1,7,55,6,Overweight,125/82,72,6000,None +170,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +171,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +172,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +173,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +174,Male,41,Lawyer,7.7,8,90,5,Normal,130/85,70,8000,None +175,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,None +176,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,None +177,Male,41,Lawyer,7.6,8,90,5,Normal,130/85,70,8000,None +178,Male,42,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +179,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +180,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +181,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +182,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +183,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +184,Male,42,Lawyer,7.8,8,90,5,Normal,130/85,70,8000,None +185,Female,42,Teacher,6.8,6,45,7,Overweight,130/85,78,5000,Sleep Apnea +186,Female,42,Teacher,6.8,6,45,7,Overweight,130/85,78,5000,Sleep Apnea +187,Female,43,Teacher,6.7,7,45,4,Overweight,135/90,65,6000,Insomnia +188,Male,43,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +189,Female,43,Teacher,6.7,7,45,4,Overweight,135/90,65,6000,Insomnia +190,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +191,Female,43,Teacher,6.7,7,45,4,Overweight,135/90,65,6000,Insomnia +192,Male,43,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +193,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +194,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +195,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +196,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +197,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +198,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +199,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +200,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +201,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Insomnia +202,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Insomnia +203,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Insomnia +204,Male,43,Engineer,6.9,6,47,7,Normal Weight,117/76,69,6800,None +205,Male,43,Engineer,7.6,8,75,4,Overweight,122/80,68,6800,None +206,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +207,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +208,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +209,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +210,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +211,Male,43,Engineer,7.7,8,90,5,Normal,130/85,70,8000,None +212,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +213,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +214,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +215,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +216,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +217,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +218,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,None +219,Male,43,Engineer,7.8,8,90,5,Normal,130/85,70,8000,Sleep Apnea +220,Male,43,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,Sleep Apnea +221,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +222,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +223,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +224,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +225,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +226,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +227,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +228,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +229,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +230,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +231,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +232,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +233,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +234,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +235,Female,44,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +236,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +237,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +238,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +239,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +240,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +241,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +242,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +243,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,Insomnia +244,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +245,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +246,Female,44,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +247,Male,44,Salesperson,6.3,6,45,7,Overweight,130/85,72,6000,Insomnia +248,Male,44,Engineer,6.8,7,45,7,Overweight,130/85,78,5000,Insomnia +249,Male,44,Salesperson,6.4,6,45,7,Overweight,130/85,72,6000,None +250,Male,44,Salesperson,6.5,6,45,7,Overweight,130/85,72,6000,None +251,Female,45,Teacher,6.8,7,30,6,Overweight,135/90,65,6000,Insomnia +252,Female,45,Teacher,6.8,7,30,6,Overweight,135/90,65,6000,Insomnia +253,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +254,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +255,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +256,Female,45,Teacher,6.5,7,45,4,Overweight,135/90,65,6000,Insomnia +257,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +258,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +259,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +260,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +261,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,Insomnia +262,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,None +263,Female,45,Teacher,6.6,7,45,4,Overweight,135/90,65,6000,None +264,Female,45,Manager,6.9,7,55,5,Overweight,125/82,75,5500,None +265,Male,48,Doctor,7.3,7,65,5,Obese,142/92,83,3500,Insomnia +266,Female,48,Nurse,5.9,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +267,Male,48,Doctor,7.3,7,65,5,Obese,142/92,83,3500,Insomnia +268,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,None +269,Female,49,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +270,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +271,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +272,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +273,Female,49,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +274,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +275,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +276,Female,49,Nurse,6.2,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +277,Male,49,Doctor,8.1,9,85,3,Obese,139/91,86,3700,Sleep Apnea +278,Male,49,Doctor,8.1,9,85,3,Obese,139/91,86,3700,Sleep Apnea +279,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Insomnia +280,Female,50,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +281,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,None +282,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +283,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +284,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +285,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +286,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +287,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +288,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +289,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +290,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +291,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +292,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +293,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +294,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +295,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +296,Female,50,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +297,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +298,Female,50,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +299,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +300,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +301,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +302,Female,51,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +303,Female,51,Nurse,7.1,7,55,6,Normal Weight,125/82,72,6000,None +304,Female,51,Nurse,6,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +305,Female,51,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +306,Female,51,Nurse,6.1,6,90,8,Overweight,140/95,75,10000,Sleep Apnea +307,Female,52,Accountant,6.5,7,45,7,Overweight,130/85,72,6000,Insomnia +308,Female,52,Accountant,6.5,7,45,7,Overweight,130/85,72,6000,Insomnia +309,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +310,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +311,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +312,Female,52,Accountant,6.6,7,45,7,Overweight,130/85,72,6000,Insomnia +313,Female,52,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +314,Female,52,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +315,Female,52,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +316,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,Insomnia +317,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +318,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +319,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +320,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +321,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +322,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +323,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +324,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +325,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +326,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +327,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +328,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +329,Female,53,Engineer,8.3,9,30,3,Normal,125/80,65,5000,None +330,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +331,Female,53,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +332,Female,53,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +333,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +334,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +335,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +336,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +337,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +338,Female,54,Engineer,8.4,9,30,3,Normal,125/80,65,5000,None +339,Female,54,Engineer,8.5,9,30,3,Normal,125/80,65,5000,None +340,Female,55,Nurse,8.1,9,75,4,Overweight,140/95,72,5000,Sleep Apnea +341,Female,55,Nurse,8.1,9,75,4,Overweight,140/95,72,5000,Sleep Apnea +342,Female,56,Doctor,8.2,9,90,3,Normal Weight,118/75,65,10000,None +343,Female,56,Doctor,8.2,9,90,3,Normal Weight,118/75,65,10000,None +344,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,None +345,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +346,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +347,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +348,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +349,Female,57,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +350,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +351,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +352,Female,57,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +353,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +354,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +355,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +356,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +357,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +358,Female,58,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +359,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,None +360,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,None +361,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +362,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +363,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +364,Female,59,Nurse,8.2,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +365,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +366,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +367,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +368,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +369,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +370,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +371,Female,59,Nurse,8,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +372,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +373,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea +374,Female,59,Nurse,8.1,9,75,3,Overweight,140/95,68,7000,Sleep Apnea \ No newline at end of file diff --git a/notebooks/explore_clean_data_username.ipynb b/notebooks/explore_clean_data_username.ipynb deleted file mode 100644 index 792d6005..00000000 --- a/notebooks/explore_clean_data_username.ipynb +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/notebooks/functions.py b/notebooks/functions.py index 7804c676..4d3db6bf 100644 --- a/notebooks/functions.py +++ b/notebooks/functions.py @@ -24,3 +24,25 @@ def function_name(input1: data_type1, input2: data_type2,..., opt_arg: data_type return opuput + + +# Importar librerías y cargar datos +import pandas as pd +import numpy as np + +df = pd.read_csv("/Users/patriciaviladomiurecio/Desktop/Ironhack/week4/project/first_project/data/raw/Sleep_health_and_lifestyle_dataset.csv") +sleep_df = pd.read_csv(df, encoding='ISO-8859-1') +sleep_df + +# Estandarizar nombres de columnas +sleep_df.columns = ( + sleep_df.columns + .str.lower() + .str.normalize('NFKD') # quita acentos + .str.encode('ascii', errors='ignore') + .str.decode('utf-8') + .str.replace(' ', '_') + .str.replace('[^0-9a-zA-Z_]', '') +) + + diff --git a/notebooks/load_and_clean_data_username.ipynb b/notebooks/load_and_clean_data_username.ipynb deleted file mode 100644 index 792d6005..00000000 --- a/notebooks/load_and_clean_data_username.ipynb +++ /dev/null @@ -1 +0,0 @@ -# diff --git a/notebooks/sleep_health_analysis_veronique.ipynb b/notebooks/sleep_health_analysis_veronique.ipynb new file mode 100644 index 00000000..aac24354 --- /dev/null +++ b/notebooks/sleep_health_analysis_veronique.ipynb @@ -0,0 +1,225 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "92ab6a0f-c295-4fb0-9cdd-6aa0f9c2ec7a", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import yaml" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0631176b-cbaf-4a1d-aacd-6aa66a2e0881", + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " with open(\"../config.yaml\", \"r\") as file:\n", + " config = yaml.safe_load(file)\n", + "except:\n", + " print(\"Configuration file not found!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa23d506-b5b9-4ea4-b835-21af5490c385", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df_clean = pd.read_csv(config['output_data']['file'], encoding='ISO-8859-1')\n", + "sleep_df_clean.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "129d48b9-1550-4014-b808-068e184cba56", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "proportion of obese in sleep apnea\n", + "\"\"\"\n", + "proportion_table_by_bmi = pd.crosstab(sleep_df_clean['bmi_category'], sleep_df_clean['sleep_disorder'], normalize='index') * 100\n", + "\n", + "print(\"Proportion of obese per sleep apnea ( %) :\")\n", + "print(proportion_table_by_bmi.round(1))" + ] + }, + { + "cell_type": "markdown", + "id": "4affd665-1679-4639-a6e1-d106fa46c8d5", + "metadata": {}, + "source": [ + "# Conclusion H1a: Obesity increases likelihood of sleep apnea\n", + "The table indicates that obese people are more affected by both insomnia and sleep apnea than the rest of the population.\n", + "Furthermore, the data suggests that in this sample, no obese person is entirely free of a sleep disorder" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "85b7ce64-3827-4e77-a173-1a867f1d4e96", + "metadata": {}, + "outputs": [], + "source": [ + "proportion_table_stress = pd.crosstab(sleep_df_clean['stress_level'], sleep_df_clean['sleep_disorder'], normalize='index') * 100\n", + "\n", + "print(\"Proportion of stress per insomnia ( %) :\")\n", + "print(proportion_table_stress.round(1))" + ] + }, + { + "cell_type": "markdown", + "id": "2efa62ce-2918-4a5e-8a3f-baf2fc7669b2", + "metadata": {}, + "source": [ + "# Conclusion H1b: Higher stress correlates with insomnia.\n", + "\n", + "This table does not show correlation between higher stress and indomnia. Furthermore, individuals with no sleep disorder have significantly higher stress levels than those with insomnia." + ] + }, + { + "cell_type": "markdown", + "id": "a4d6b24e-4c23-4efd-82d1-557b35fd39f8", + "metadata": {}, + "source": [ + "# To observe the disorder risk for slipping less yhan 6h, we considere:\n", + "bmi_category = obese\n", + "Blood Pressure (systolic/diastolic) > 140/90\n", + "100 < Heart Rate (bpm) < 60\n", + "Sleep Disorder \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bae269b5-d8c0-4478-8cb6-6dc04ad66933", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Create a temporary column retruning True when sleep apnea then 1or 0 whyit .astype(int)\n", + "sleep_df_clean['has_hypertension'] = (sleep_df_clean['diastolic'] > 90 ).astype(int)\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c6ee18d-76ec-4635-8088-cbfeaf233f0e", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df_clean['has_disorder'] = (\n", + " (sleep_df_clean['diastolic'] > 90) | \n", + " (sleep_df_clean['bmi_category'] == 'obese') | \n", + " (sleep_df_clean['systolic'] > 140) |\n", + " (sleep_df_clean['heart_rate'] > 100) |\n", + " (sleep_df_clean['heart_rate'] < 60) |\n", + " (sleep_df_clean['sleep_disorder'] != 'No Disorder')\n", + " ).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f70e2bb1-0fd7-46f8-9ddd-e7097efa6dd0", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "proportion_table_duration_sleep = pd.crosstab(sleep_df_clean['sleep_duration'] < 6, sleep_df_clean['has_disorder'] == 1, normalize='index') * 100\n", + "\n", + "print(\"Proportion of duration sleep < 6h increase disorder ( %) :\")\n", + "print(proportion_table_duration_sleep.round(1))\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "89cc47fc-2dd1-48af-a10f-3b458772782c", + "metadata": {}, + "source": [ + "# Conclusion H1c: Sleeping <6 hours increases disorder risk.\n", + "There is a correllation between the less sleeping and the disorder because, when i combine all the parametter, the risks is very hi" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1b8e2151-cd4a-4ab3-991a-99b230b4dbd6", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "proportion_table_physical_activity_level = pd.crosstab(sleep_df_clean['physical_activity_level']<40, sleep_df_clean['has_disorder'] == 1, normalize='index') * 100\n", + "\n", + "print(\"Proportion of physical_activity_level per risk disorder ( %) :\")\n", + "print(proportion_table_physical_activity_level.round(1))" + ] + }, + { + "cell_type": "markdown", + "id": "92d4fb68-d70d-4bac-8299-be802cd0d5d1", + "metadata": {}, + "source": [ + "# H1d: Low physical activity (<40 min/day) increases disorder prevalence.\n", + "Their is no correllation between less than 40mi/day of activity and disorder prevalence. Furthumore, doing more does not impact the capability to have desorder. Maybe because when your have health issu, the first medical recommandation is to have sprt activity to maintain your status. This last statement must be verify by another dataset (part of the population with activity with and without desorder" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ac757a5-4476-4734-8c0e-94031e1c4629", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "proportion_table_heart_rate = pd.crosstab(sleep_df_clean['heart_rate'] > 100, sleep_df_clean['sleep_disorder'] == \"Sleep Apnea\", normalize='index') * 100\n", + "\n", + "print(\"Proportion of heart rate< 100 increase sleep apnea ( %) :\")\n", + "print(proportion_table_heart_rate.round(1))\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "4c881661-dbea-4909-8300-0dbab1f7f48b", + "metadata": {}, + "source": [ + "# H1e: Hight heart rate (> 100 bpm) does not increases sleep apnea." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/sleep_health_cleaning_carmelina.ipynb b/notebooks/sleep_health_cleaning_carmelina.ipynb new file mode 100644 index 00000000..67cd0201 --- /dev/null +++ b/notebooks/sleep_health_cleaning_carmelina.ipynb @@ -0,0 +1,468 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "763adffb-1acd-4d43-b5af-b7c23e427ca0", + "metadata": {}, + "source": [ + "## Importing the data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8abe45d-f572-420e-80a0-b63e5656b5f3", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import yaml\n", + "sleep_data = pd.read_csv(\"data/raw/Sleep_health_and_lifestyle_dataset.csv\")\n", + "display(sleep_data)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b03536e4-fbe1-4ace-8d25-ab07b1104db2", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60942063-3eb7-4b07-a47f-c976f3891c9a", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58359c05-5cda-4ef9-99df-be6d0c5dff5e", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "afdb0b88-0888-425e-9d93-a9a0d8ac93a7", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.isnull()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1627024-b4d5-442f-9410-927b15a06a11", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.isnull().sum() " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25de34a0-92e7-43ce-9af4-2e44724a5e5d", + "metadata": {}, + "outputs": [], + "source": [ + "print(sleep_data.duplicated().sum())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e4fc39dd-4089-4f5c-ab56-6e52777830b5", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.duplicated()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30df7442-2b3b-4651-a291-9703db05c8f2", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data['Sleep Disorder'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fc28c0f-a0f7-4a9d-a966-716fe609d27b", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data['Sleep Disorder'].isnull()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9198265a-a986-443e-aaf5-2f13f6795ead", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.duplicated().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e6f1d8d9-eccd-419e-b400-1fcef40436e1", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.duplicated(subset=sleep_data.columns.difference(['Person ID'])).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47bf619e-2ae1-4f88-b3f7-acde94200602", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa803e24-f609-4bb0-b7ed-1a849ad15430", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean = sleep_data.drop_duplicates(subset=sleep_data.columns.difference(['Person ID']), keep='first')\n", + "display(sleep_data_clean)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48461239-636f-4584-b809-918d1e9fdde1", + "metadata": {}, + "outputs": [], + "source": [ + "print(f\"deleted: {len(sleep_data) - len(sleep_data_clean)} lines\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10c02ad3-2bed-41bf-bc13-cb8146c8cebb", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Sleep Disorder'].isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87fc2599-08dc-4731-9c0f-9fee942137db", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean = sleep_data.drop_duplicates(\n", + " subset=sleep_data.columns.difference(['Person ID']), \n", + " keep='first'\n", + ").copy()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30bd924e-d204-4eaa-ae9f-0abb914cc5ff", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Sleep Disorder'] = sleep_data_clean['Sleep Disorder'].fillna('None')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a8b2f914-1adb-4dd8-ac20-14c3b59d08ee", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Sleep Disorder'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e718f68-51f4-4b13-a84e-dd332c72b214", + "metadata": {}, + "outputs": [], + "source": [ + "display(sleep_data_clean)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dccc3086-cc41-45f2-8f3c-b3ffb8ad2a94", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean.duplicated(subset=sleep_data.columns.difference(['Person ID'])).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7f16417f-afa3-4edf-acd8-fa73d5467f29", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['BMI Category'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41b69fe5-b2c0-4113-abb2-da3465735265", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['BMI Category'] = sleep_data_clean['BMI Category'].replace('Normal Weight', 'Normal')\n", + "sleep_data_clean['BMI Category'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97d849f5-f9fe-4077-84ec-3f8cea7ab19a", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Occupation'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "839b0461-de2d-44f8-ade5-e5431f8c4811", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Gender'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01c14e17-b36d-4034-a1db-7899043a7235", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Age'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73901b72-4095-48c3-9630-c30f6f9c25fc", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Blood Pressure'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50fba77f-6a07-4b4e-b4a0-0dc6b2d0b6f4", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean[['Systolic', 'Diastolic']] = sleep_data_clean['Blood Pressure'].str.split('/', expand=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a80b7b78-bfca-4e87-80bc-c8a57959ee3c", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Systolic'] = sleep_data_clean['Systolic'].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35325679-5391-48b0-9a43-15495bf62b5f", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['Diastolic'] = sleep_data_clean['Diastolic'].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "314b66c8-f92a-417b-ade0-5033146cc1ef", + "metadata": {}, + "outputs": [], + "source": [ + "display(sleep_data_clean)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "74d1fceb-60b9-4c75-82da-167d7fba37bf", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8369f9b8-fd0e-4804-ae1d-ed47bfb9c306", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "80cc3d5a-eaac-4656-8321-b961c1935729", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean = sleep_data_clean.rename(columns={\n", + " 'Person ID': 'person_id',\n", + " 'Gender': 'gender',\n", + " 'Age': 'age',\n", + " 'Occupation':'occupation', \n", + " 'Sleep Duration': 'sleep_duration',\n", + " 'Quality of Sleep': 'quality_of_sleep', \n", + " 'Physical Activity Level': 'physical_activity_level', \n", + " 'Stress Level': 'stress_level',\n", + " 'BMI Category': 'bmi_category', \n", + " 'Blood Pressure': 'blood_pressure', \n", + " 'Heart Rate': 'heart_rate', \n", + " 'Daily Steps': 'daily_steps',\n", + " 'Sleep Disorder': 'sleep_disorder',\n", + " 'Systolic': 'systolic',\n", + " 'Diastolic' : 'diastolic'\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "88f13764-ab6c-4e8b-a54a-e888ff32dc2f", + "metadata": {}, + "outputs": [], + "source": [ + "display(sleep_data_clean)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd45122f-5cd7-416e-b784-44024fb11a92", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean = sleep_data_clean.drop(columns='blood_pressure')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9aad531-06aa-4c8b-95e3-d799a0be03fa", + "metadata": {}, + "outputs": [], + "source": [ + "display (sleep_data_clean)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8b908ecb-9142-43cd-b7b5-a246312a6d68", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean = sleep_data_clean.reset_index(drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a12b9e28-3bd8-401b-ad01-470e849bc04f", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean['person_id'] = range(1, len(sleep_data_clean) + 1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "699948aa-6e1f-4169-8ca9-8ce8451f9fce", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c48babc0-c799-466b-952b-07119fc87acb", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_data_clean.to_csv(\"sleep_health_project_clean.csv\", index=False, encoding='utf-8')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:base] *", + "language": "python", + "name": "conda-base-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/sleep_health_cleaning_pati.ipynb b/notebooks/sleep_health_cleaning_pati.ipynb new file mode 100644 index 00000000..bfccd888 --- /dev/null +++ b/notebooks/sleep_health_cleaning_pati.ipynb @@ -0,0 +1,504 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b5efb23e-690c-4763-9fef-f2545aafc6fb", + "metadata": {}, + "source": [ + "# Data Work" + ] + }, + { + "cell_type": "markdown", + "id": "9130348a-595d-4bce-9d8e-505e0c9f57d5", + "metadata": {}, + "source": [ + "### 1. Importing and exploring the DataFrame" + ] + }, + { + "cell_type": "markdown", + "id": "d614cefb-8d6f-4dec-a6a3-5c7b0cd0212d", + "metadata": {}, + "source": [ + "Importing libraries we will need to clean the Dataset - Sleep Health and Lifestyle." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed15ef58-7d76-4aef-bdef-6ccbb7bb318a", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import yaml" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3ebe0481-88e2-49f1-9588-042f21b56b8d", + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " with open(\"../config.yaml\", \"r\") as file:\n", + " config = yaml.safe_load(file)\n", + "except:\n", + " print(\"Configuration file not found!\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ec37943-cc03-4702-b4a3-f144cf3191e9", + "metadata": {}, + "outputs": [], + "source": [ + "config" + ] + }, + { + "cell_type": "markdown", + "id": "6af1d1f5-261a-436d-a7d0-2564bc45951b", + "metadata": {}, + "source": [ + "In this step, we load the Sleep Health and Lifestyle dataset into a pandas DataFrame.\n", + "\n", + "This dataset contains information about individuals' sleep habits, health indicators, lifestyle patterns, and the presence of sleep disorders." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e80d1833-22d2-4515-b40f-51bb11ec3409", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df = pd.read_csv(config['input_data']['file'], encoding='ISO-8859-1')\n", + "sleep_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "b78cea56-d492-4d29-8dc3-381dcb8f4bea", + "metadata": {}, + "source": [ + "Columns information:\n", + "\n", + "- Person ID: An identifier for each individual.\n", + "- Gender: The gender of the person (Male/Female).\n", + "- Age: The age of the person in years.\n", + "- Occupation: The occupation or profession of the person.\n", + "- Sleep Duration (hours): The number of hours the person sleeps per day.\n", + "- Quality of Sleep (scale: 1-10): A subjective rating of the quality of sleep, ranging from 1 to 10.\n", + "- Physical Activity Level (minutes/day): The number of minutes the person engages in physical activity daily.\n", + "- Stress Level (scale: 1-10): A subjective rating of the stress level experienced by the person, ranging from 1 to 10.\n", + "- BMI Category: The BMI category of the person (e.g., Underweight, Normal, Overweight).\n", + "- Blood Pressure (systolic/diastolic): The blood pressure measurement of the person, indicated as systolic pressure over diastolic pressure.\n", + "- Heart Rate (bpm): The resting heart rate of the person in beats per minute.\n", + "- Daily Steps: The number of steps the person takes per day.\n", + "- Sleep Disorder: The presence or absence of a sleep disorder in the person (None, Insomnia, Sleep Apnea)." + ] + }, + { + "cell_type": "markdown", + "id": "14413245-9908-4bd6-a5dd-a04b16ebfa20", + "metadata": {}, + "source": [ + "Checking the shape of the DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "af483cf4-9c49-4e56-8e92-1fc210108afa", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.shape" + ] + }, + { + "cell_type": "markdown", + "id": "6562c523-34ba-499a-8c18-c8caa11f32db", + "metadata": {}, + "source": [ + "### 2. Cleaning names of columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0e78431f-8625-467f-bc25-936dedc8c000", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.columns = (\n", + " sleep_df.columns\n", + " .str.lower()\n", + " .str.normalize('NFKD') \n", + " .str.encode('ascii', errors='ignore')\n", + " .str.decode('utf-8')\n", + " .str.replace(' ', '_')\n", + " .str.replace('[^0-9a-zA-Z_]', '')\n", + ")\n", + "sleep_df.head(5)" + ] + }, + { + "cell_type": "markdown", + "id": "f224bb0c-d127-4ba3-9691-05acaff42a4c", + "metadata": {}, + "source": [ + "### 3. Cleaning Data" + ] + }, + { + "cell_type": "markdown", + "id": "b4729006-dd91-48a9-9c46-5e65640c2b02", + "metadata": {}, + "source": [ + "Before analysis, we check:\n", + "\n", + "- Missing values\n", + "- Duplicates\n", + "- Incorrect data types\n", + "- Formatting inconsistencies (e.g., \"140/90\" for blood pressure)\n", + "- Inconsistent categories (BMI, occupation, sleep disorder)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ab3f22b9-a7da-456f-b360-4f3659299e35", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a81fbcd7-b940-4cce-89a7-05d90f985031", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "id": "28cfabf9-b058-430c-928f-dda3248231af", + "metadata": {}, + "source": [ + "Now we can check the unique values of each columns, so we can see if we need to clean them or if they are fine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e12147fe-0b5e-4b91-92db-c52b4f111eb7", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[\"gender\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3b0b4f8-4814-4e71-92e1-b416547506ab", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[\"occupation\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8bff6d10-4dd5-4135-84a3-f810ca1f82ba", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[\"bmi_category\"].unique()" + ] + }, + { + "cell_type": "markdown", + "id": "95758916-ba64-4c3c-9433-fd2d63dd3d40", + "metadata": {}, + "source": [ + "\"Normal\" and \"Normal Weight\" Categories are refering to the same category, so we can rename them. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4002460e-4ebb-477a-bbc6-cb25c2beb868", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.loc[sleep_df[\"bmi_category\"] == \"Normal Weight\", \"bmi_category\"] = \"Normal\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1c8d6e6-5b0b-4925-bbd3-d90dd961c780", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[\"blood_pressure\"].unique()" + ] + }, + { + "cell_type": "markdown", + "id": "e8ec181b-43f5-4981-9a84-f6222e979e23", + "metadata": {}, + "source": [ + "We can split blod presure in two:\n", + "- Systolic (upper number)\n", + " Pressure when the heart contracts\n", + "\n", + "- Diastolic (lower number)\n", + " Pressure when the heart relaxes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4768c669-a4aa-4120-a97e-6e82d360d6a1", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[['systolic', 'diastolic']] = sleep_df['blood_pressure'].str.split('/', expand=True)\n", + "sleep_df['systolic'] = pd.to_numeric(sleep_df['systolic'])\n", + "sleep_df['diastolic'] = pd.to_numeric(sleep_df['diastolic'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "285f5b73-61e9-4074-a2d8-add3764bc5b7", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "946e4d41-af18-4d51-8090-074d7b24e14d", + "metadata": {}, + "outputs": [], + "source": [ + "# sleep_df.drop(columns=[\"blood_pressure\"], inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7309aae-b868-47ba-865b-dd588ed24dc6", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[\"sleep_disorder\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6bd919a5-c18b-4770-9575-fff313786213", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[\"sleep_disorder\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a278d4dc-00f8-41e0-a912-194dfb6f79f3", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.fillna({\"sleep_disorder\": \"No Disorder\"}, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60d01a0f-6c33-4052-9f57-f066025433fa", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df[\"sleep_disorder\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bad136b1-b525-448b-8d01-6b357bd1894c", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b1b1e5cb-5de7-4ae9-a66d-c6c7f95cd680", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "376012df-d521-4cfd-b4ca-219a4f1b32ae", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.duplicated().sum()" + ] + }, + { + "cell_type": "markdown", + "id": "e1ccabe6-0748-49a1-b00f-9c47aa493eb1", + "metadata": {}, + "source": [ + "### 4. Checking and deleting duplicated values" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2a01a636-2679-44af-983e-e9cd579862d6", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.duplicated(subset= sleep_df.columns.difference(['person_id'])).sum()" + ] + }, + { + "cell_type": "markdown", + "id": "e8fa5e9d-b636-4db6-af76-894a3ae450a2", + "metadata": {}, + "source": [ + "We see that we have 242 duplicated rows, so we can drop them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c16260a-ea21-4073-bd36-25357a3926ac", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df_clean = sleep_df.drop_duplicates(subset=sleep_df.columns.difference(['person_id']), keep='first')\n", + "\n", + "sleep_df_clean" + ] + }, + { + "cell_type": "markdown", + "id": "2e51f62a-7496-4031-ab63-3336b55e5f29", + "metadata": {}, + "source": [ + "### 5. Looking at Statistical summary" + ] + }, + { + "cell_type": "markdown", + "id": "f100248b-9abb-4dd7-8460-c066471c1961", + "metadata": {}, + "source": [ + "#### 5.1 Statistical summary of numerical columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "02b81d3a-ce03-40fa-8e64-c6646e638dd8", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df_clean.describe()" + ] + }, + { + "cell_type": "markdown", + "id": "1d80eb87-18cd-4a94-9160-21149f1a18f4", + "metadata": {}, + "source": [ + "#### 5.2 Statistical summary of categorical columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d90fb11e-ad5f-43e5-b191-eade012048ca", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df_clean.select_dtypes(include='object').describe()" + ] + }, + { + "cell_type": "markdown", + "id": "1be5620a-0e2f-4648-a0cf-4164f0abd734", + "metadata": {}, + "source": [ + "### 6. Exporting the clean DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6da8fa73-5375-46bc-9642-a3909c186d38", + "metadata": {}, + "outputs": [], + "source": [ + "sleep_df.to_csv(\"sleep_health_project_clean.csv\", index=False, encoding='utf-8')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98fdaa01-2254-4312-8083-3e4dd235a829", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/sleep_health_cleaning_veronique.ipynb b/notebooks/sleep_health_cleaning_veronique.ipynb new file mode 100644 index 00000000..c411cb32 --- /dev/null +++ b/notebooks/sleep_health_cleaning_veronique.ipynb @@ -0,0 +1,2067 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "1e0787d1-cc80-44f6-b8dd-289100c76861", + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install pandas openpyxl" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3285ae80-c5cc-4865-b5db-a4baea512296", + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install xlrd" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "09ac5399-7b97-4b0b-8b40-3ace765b17b7", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "sleep_health = os.listdir(r\"C:\\Users\\Utilisateur\\IronHack\\Week4\\first_project\") " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "879cc154-31f8-446a-b48d-3376c745715f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Person IDGenderAgeOccupationSleep DurationQuality of SleepPhysical Activity LevelStress LevelBMI CategoryBlood PressureHeart RateDaily StepsSleep Disorder
01Male27Software Engineer6.16426Overweight126/83774200NaN
12Male28Doctor6.26608Normal125/807510000NaN
23Male28Doctor6.26608Normal125/807510000NaN
34Male28Sales Representative5.94308Obese140/90853000Sleep Apnea
45Male28Sales Representative5.94308Obese140/90853000Sleep Apnea
\n", + "
" + ], + "text/plain": [ + " Person ID Gender Age Occupation Sleep Duration \\\n", + "0 1 Male 27 Software Engineer 6.1 \n", + "1 2 Male 28 Doctor 6.2 \n", + "2 3 Male 28 Doctor 6.2 \n", + "3 4 Male 28 Sales Representative 5.9 \n", + "4 5 Male 28 Sales Representative 5.9 \n", + "\n", + " Quality of Sleep Physical Activity Level Stress Level BMI Category \\\n", + "0 6 42 6 Overweight \n", + "1 6 60 8 Normal \n", + "2 6 60 8 Normal \n", + "3 4 30 8 Obese \n", + "4 4 30 8 Obese \n", + "\n", + " Blood Pressure Heart Rate Daily Steps Sleep Disorder \n", + "0 126/83 77 4200 NaN \n", + "1 125/80 75 10000 NaN \n", + "2 125/80 75 10000 NaN \n", + "3 140/90 85 3000 Sleep Apnea \n", + "4 140/90 85 3000 Sleep Apnea " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "# Utilisez le chemin complet et le nom du fichier comme une chaîne de caractères\n", + "#titanic_df = pd.read_csv(url)\n", + "file_path = r'C:\\Users\\Utilisateur\\IronHack\\Week4\\first_project\\data\\raw\\Sleep_health_and_lifestyle_dataset.csv'\n", + "df = pd.read_csv(file_path)\n", + "\n", + "# Affiche les 5 premières lignes du DataFrame pour vérifier la lecture\n", + "display(df.head())" + ] + }, + { + "attachments": { + "4479a41c-eee1-47c2-a355-6db4f461c513.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "1b591188-bf4a-481c-85f8-7b44874b49a1", + "metadata": {}, + "source": [ + "![image.png](attachment:4479a41c-eee1-47c2-a355-6db4f461c513.png)" + ] + }, + { + "cell_type": "markdown", + "id": "10a76d48-a40f-4494-b2cb-7aa7a7fd55a2", + "metadata": {}, + "source": [ + "# Checking for Null Values (S2D2 - ch 1.1.2)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "420a3cdd-ac3a-41bd-af27-8ceedad96511", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Person ID', 'Gender', 'Age', 'Occupation', 'Sleep Duration',\n", + " 'Quality of Sleep', 'Physical Activity Level', 'Stress Level',\n", + " 'BMI Category', 'Blood Pressure', 'Heart Rate', 'Daily Steps',\n", + " 'Sleep Disorder'],\n", + " dtype='object')" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "Column list\n", + "\"\"\"\n", + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b267aa4d-84e8-4a8d-b139-6ad253405def", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Person ID False\n", + "Gender False\n", + "Age False\n", + "Occupation False\n", + "Sleep Duration False\n", + "Quality of Sleep False\n", + "Physical Activity Level False\n", + "Stress Level False\n", + "BMI Category False\n", + "Blood Pressure False\n", + "Heart Rate False\n", + "Daily Steps False\n", + "Sleep Disorder True\n", + "dtype: bool" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "check null value True = null in each column\n", + "\"\"\"\n", + "df.isnull().any()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "035cf346-c415-41fc-ab1a-65e5348981d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Person ID 0\n", + "Gender 0\n", + "Age 0\n", + "Occupation 0\n", + "Sleep Duration 0\n", + "Quality of Sleep 0\n", + "Physical Activity Level 0\n", + "Stress Level 0\n", + "BMI Category 0\n", + "Blood Pressure 0\n", + "Heart Rate 0\n", + "Daily Steps 0\n", + "Sleep Disorder 219\n", + "dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "Count null value True each column\n", + "\"\"\"\n", + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "0c21c752-6388-4704-b514-7a1533d585e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Person IDGenderAgeOccupationSleep DurationQuality of SleepPhysical Activity LevelStress LevelBMI CategoryBlood PressureHeart RateDaily StepsSleep Disorder
0FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTrue
1FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTrue
2FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseTrue
3FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
4FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
..........................................
369FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
370FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
371FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
372FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
373FalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
\n", + "

374 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " Person ID Gender Age Occupation Sleep Duration Quality of Sleep \\\n", + "0 False False False False False False \n", + "1 False False False False False False \n", + "2 False False False False False False \n", + "3 False False False False False False \n", + "4 False False False False False False \n", + ".. ... ... ... ... ... ... \n", + "369 False False False False False False \n", + "370 False False False False False False \n", + "371 False False False False False False \n", + "372 False False False False False False \n", + "373 False False False False False False \n", + "\n", + " Physical Activity Level Stress Level BMI Category Blood Pressure \\\n", + "0 False False False False \n", + "1 False False False False \n", + "2 False False False False \n", + "3 False False False False \n", + "4 False False False False \n", + ".. ... ... ... ... \n", + "369 False False False False \n", + "370 False False False False \n", + "371 False False False False \n", + "372 False False False False \n", + "373 False False False False \n", + "\n", + " Heart Rate Daily Steps Sleep Disorder \n", + "0 False False True \n", + "1 False False True \n", + "2 False False True \n", + "3 False False False \n", + "4 False False False \n", + ".. ... ... ... \n", + "369 False False False \n", + "370 False False False \n", + "371 False False False \n", + "372 False False False \n", + "373 False False False \n", + "\n", + "[374 rows x 13 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "Give null value True in each column + total number of rows. So 219 cells null for 374 rows\n", + "\"\"\"\n", + "df.isnull()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f9df8f13-09ef-4422-a6b3-06493b34e00e", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Person IDGenderAgeOccupationSleep DurationQuality of SleepPhysical Activity LevelStress LevelBMI CategoryBlood PressureHeart RateDaily StepsSleep Disorder
01Male27Software Engineer6.16426Overweight126/83774200None
12Male28Doctor6.26608Normal125/807510000None
23Male28Doctor6.26608Normal125/807510000None
34Male28Sales Representative5.94308Obese140/90853000Sleep Apnea
45Male28Sales Representative5.94308Obese140/90853000Sleep Apnea
..........................................
369370Female59Nurse8.19753Overweight140/95687000Sleep Apnea
370371Female59Nurse8.09753Overweight140/95687000Sleep Apnea
371372Female59Nurse8.19753Overweight140/95687000Sleep Apnea
372373Female59Nurse8.19753Overweight140/95687000Sleep Apnea
373374Female59Nurse8.19753Overweight140/95687000Sleep Apnea
\n", + "

374 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " Person ID Gender Age Occupation Sleep Duration \\\n", + "0 1 Male 27 Software Engineer 6.1 \n", + "1 2 Male 28 Doctor 6.2 \n", + "2 3 Male 28 Doctor 6.2 \n", + "3 4 Male 28 Sales Representative 5.9 \n", + "4 5 Male 28 Sales Representative 5.9 \n", + ".. ... ... ... ... ... \n", + "369 370 Female 59 Nurse 8.1 \n", + "370 371 Female 59 Nurse 8.0 \n", + "371 372 Female 59 Nurse 8.1 \n", + "372 373 Female 59 Nurse 8.1 \n", + "373 374 Female 59 Nurse 8.1 \n", + "\n", + " Quality of Sleep Physical Activity Level Stress Level BMI Category \\\n", + "0 6 42 6 Overweight \n", + "1 6 60 8 Normal \n", + "2 6 60 8 Normal \n", + "3 4 30 8 Obese \n", + "4 4 30 8 Obese \n", + ".. ... ... ... ... \n", + "369 9 75 3 Overweight \n", + "370 9 75 3 Overweight \n", + "371 9 75 3 Overweight \n", + "372 9 75 3 Overweight \n", + "373 9 75 3 Overweight \n", + "\n", + " Blood Pressure Heart Rate Daily Steps Sleep Disorder \n", + "0 126/83 77 4200 None \n", + "1 125/80 75 10000 None \n", + "2 125/80 75 10000 None \n", + "3 140/90 85 3000 Sleep Apnea \n", + "4 140/90 85 3000 Sleep Apnea \n", + ".. ... ... ... ... \n", + "369 140/95 68 7000 Sleep Apnea \n", + "370 140/95 68 7000 Sleep Apnea \n", + "371 140/95 68 7000 Sleep Apnea \n", + "372 140/95 68 7000 Sleep Apnea \n", + "373 140/95 68 7000 Sleep Apnea \n", + "\n", + "[374 rows x 13 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.fillna(\"None\")" + ] + }, + { + "cell_type": "markdown", + "id": "4cfe1793-3b12-4ae3-8586-7da0dcc83f1a", + "metadata": {}, + "source": [ + "# Check duplicate (S2D2 - ch 1.2)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f578862f-e607-4359-bc75-40cff188cf0f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "duplicated() method, which returns a boolean Series indicating\n", + "\"\"\"\n", + "df.duplicated().sum() # no duplicate because python include nID" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "94fb9ac3-4943-4f33-bee1-8d6e51833ae4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(242)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "duplicated() method, without the id column obviusly \n", + "\"\"\"\n", + "\n", + "df.duplicated(subset=df.columns.difference(['Person ID'])).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e60642c7-5105-4e85-a513-cab43436350c", + "metadata": {}, + "outputs": [], + "source": [ + "#df.duplicated((subset==df.columns.difference(['Person ID']))).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "d553496b-b0f6-4bd9-97a3-c21cc728d701", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "drop_duplicates() method, remove all duplicate, remain 1 or not? : remain 1\n", + "\"\"\"\n", + "df.drop_duplicates(subset=df.columns.difference(['Person ID']), inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6ec51d5b-91f3-487b-8fef-65c34974f8c2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(132, 13)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "79f35f8e-ae56-40a4-a149-3f53be4a0e50", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Person IDGenderAgeOccupationSleep DurationQuality of SleepPhysical Activity LevelStress LevelBMI CategoryBlood PressureHeart RateDaily StepsSleep Disorder
01Male27Software Engineer6.16426Overweight126/83774200NaN
12Male28Doctor6.26608Normal125/807510000NaN
34Male28Sales Representative5.94308Obese140/90853000Sleep Apnea
56Male28Software Engineer5.94308Obese140/90853000Insomnia
67Male29Teacher6.36407Obese140/90823500Insomnia
..........................................
358359Female59Nurse8.09753Overweight140/95687000NaN
359360Female59Nurse8.19753Overweight140/95687000NaN
360361Female59Nurse8.29753Overweight140/95687000Sleep Apnea
364365Female59Nurse8.09753Overweight140/95687000Sleep Apnea
366367Female59Nurse8.19753Overweight140/95687000Sleep Apnea
\n", + "

132 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " Person ID Gender Age Occupation Sleep Duration \\\n", + "0 1 Male 27 Software Engineer 6.1 \n", + "1 2 Male 28 Doctor 6.2 \n", + "3 4 Male 28 Sales Representative 5.9 \n", + "5 6 Male 28 Software Engineer 5.9 \n", + "6 7 Male 29 Teacher 6.3 \n", + ".. ... ... ... ... ... \n", + "358 359 Female 59 Nurse 8.0 \n", + "359 360 Female 59 Nurse 8.1 \n", + "360 361 Female 59 Nurse 8.2 \n", + "364 365 Female 59 Nurse 8.0 \n", + "366 367 Female 59 Nurse 8.1 \n", + "\n", + " Quality of Sleep Physical Activity Level Stress Level BMI Category \\\n", + "0 6 42 6 Overweight \n", + "1 6 60 8 Normal \n", + "3 4 30 8 Obese \n", + "5 4 30 8 Obese \n", + "6 6 40 7 Obese \n", + ".. ... ... ... ... \n", + "358 9 75 3 Overweight \n", + "359 9 75 3 Overweight \n", + "360 9 75 3 Overweight \n", + "364 9 75 3 Overweight \n", + "366 9 75 3 Overweight \n", + "\n", + " Blood Pressure Heart Rate Daily Steps Sleep Disorder \n", + "0 126/83 77 4200 NaN \n", + "1 125/80 75 10000 NaN \n", + "3 140/90 85 3000 Sleep Apnea \n", + "5 140/90 85 3000 Insomnia \n", + "6 140/90 82 3500 Insomnia \n", + ".. ... ... ... ... \n", + "358 140/95 68 7000 NaN \n", + "359 140/95 68 7000 NaN \n", + "360 140/95 68 7000 Sleep Apnea \n", + "364 140/95 68 7000 Sleep Apnea \n", + "366 140/95 68 7000 Sleep Apnea \n", + "\n", + "[132 rows x 13 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "e2ff896b-e84a-481f-a7fd-0689ae9821f2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Person IDGenderAgeOccupationSleep DurationQuality of SleepPhysical Activity LevelStress LevelBMI CategoryBlood PressureHeart RateDaily StepsSleep Disordersystolicdiastolic
01Male27Software Engineer6.16426Overweight126/83774200NaN12683
12Male28Doctor6.26608Normal125/807510000NaN12580
34Male28Sales Representative5.94308Obese140/90853000Sleep Apnea14090
56Male28Software Engineer5.94308Obese140/90853000Insomnia14090
67Male29Teacher6.36407Obese140/90823500Insomnia14090
................................................
358359Female59Nurse8.09753Overweight140/95687000NaN14095
359360Female59Nurse8.19753Overweight140/95687000NaN14095
360361Female59Nurse8.29753Overweight140/95687000Sleep Apnea14095
364365Female59Nurse8.09753Overweight140/95687000Sleep Apnea14095
366367Female59Nurse8.19753Overweight140/95687000Sleep Apnea14095
\n", + "

132 rows × 15 columns

\n", + "
" + ], + "text/plain": [ + " Person ID Gender Age Occupation Sleep Duration \\\n", + "0 1 Male 27 Software Engineer 6.1 \n", + "1 2 Male 28 Doctor 6.2 \n", + "3 4 Male 28 Sales Representative 5.9 \n", + "5 6 Male 28 Software Engineer 5.9 \n", + "6 7 Male 29 Teacher 6.3 \n", + ".. ... ... ... ... ... \n", + "358 359 Female 59 Nurse 8.0 \n", + "359 360 Female 59 Nurse 8.1 \n", + "360 361 Female 59 Nurse 8.2 \n", + "364 365 Female 59 Nurse 8.0 \n", + "366 367 Female 59 Nurse 8.1 \n", + "\n", + " Quality of Sleep Physical Activity Level Stress Level BMI Category \\\n", + "0 6 42 6 Overweight \n", + "1 6 60 8 Normal \n", + "3 4 30 8 Obese \n", + "5 4 30 8 Obese \n", + "6 6 40 7 Obese \n", + ".. ... ... ... ... \n", + "358 9 75 3 Overweight \n", + "359 9 75 3 Overweight \n", + "360 9 75 3 Overweight \n", + "364 9 75 3 Overweight \n", + "366 9 75 3 Overweight \n", + "\n", + " Blood Pressure Heart Rate Daily Steps Sleep Disorder systolic \\\n", + "0 126/83 77 4200 NaN 126 \n", + "1 125/80 75 10000 NaN 125 \n", + "3 140/90 85 3000 Sleep Apnea 140 \n", + "5 140/90 85 3000 Insomnia 140 \n", + "6 140/90 82 3500 Insomnia 140 \n", + ".. ... ... ... ... ... \n", + "358 140/95 68 7000 NaN 140 \n", + "359 140/95 68 7000 NaN 140 \n", + "360 140/95 68 7000 Sleep Apnea 140 \n", + "364 140/95 68 7000 Sleep Apnea 140 \n", + "366 140/95 68 7000 Sleep Apnea 140 \n", + "\n", + " diastolic \n", + "0 83 \n", + "1 80 \n", + "3 90 \n", + "5 90 \n", + "6 90 \n", + ".. ... \n", + "358 95 \n", + "359 95 \n", + "360 95 \n", + "364 95 \n", + "366 95 \n", + "\n", + "[132 rows x 15 columns]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "Name.apply(fonction) create 2 new column with specific blood condition : systolic and the diastolic\n", + "df['systolic'] = df.Name.apply(len)\n", + "\"\"\"\n", + "\n", + "df[['systolic', 'diastolic']] = df['Blood Pressure'].str.split('/', expand=True).astype(int)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "bc6d270b-4f99-4fdf-8343-12734ac8011a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "BMI Category\n", + "Normal 57\n", + "Overweight 52\n", + "Normal Weight 16\n", + "Obese 7\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['BMI Category'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "be50dcb8-9dcd-4f38-87b7-8103227c3b7e", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "2 categories of \"normal\" to merge in Normal : \n", + "\"\"\"\n", + "df['BMI Category'] = df['BMI Category'].replace('Normal Weight', 'Normal')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "fa3f7313-47ed-4340-9879-bd53eade9884", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Occupation\n", + "Nurse 29\n", + "Doctor 24\n", + "Engineer 22\n", + "Teacher 15\n", + "Lawyer 15\n", + "Accountant 11\n", + "Salesperson 9\n", + "Software Engineer 3\n", + "Scientist 2\n", + "Sales Representative 1\n", + "Manager 1\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "df['Occupation'].value_counts()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "3b495677-aacd-4314-84b1-790f10bcb39c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Sleep Disorder\n", + "Sleep Apnea 30\n", + "Insomnia 29\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Sleep Disorder'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "2eb0658b-f7a2-426d-bc25-c0420909b44b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Sleep Disorder\n", + "True 73\n", + "False 59\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['Sleep Disorder'].isnull().value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "6ff5dd06-295a-4204-bf9b-720ef36b5f9c", + "metadata": {}, + "outputs": [], + "source": [ + "df['Sleep Disorder'] = df['Sleep Disorder'].fillna('No disorder')" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "a9e0ba8e-2a93-4481-8f6e-759afd4f0a98", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Person IDGenderAgeOccupationSleep DurationQuality of SleepPhysical Activity LevelStress LevelBMI CategoryBlood PressureHeart RateDaily StepsSleep Disordersystolicdiastolic
01Male27Software Engineer6.16426Overweight126/83774200No disorder12683
12Male28Doctor6.26608Normal125/807510000No disorder12580
34Male28Sales Representative5.94308Obese140/90853000Sleep Apnea14090
56Male28Software Engineer5.94308Obese140/90853000Insomnia14090
67Male29Teacher6.36407Obese140/90823500Insomnia14090
................................................
358359Female59Nurse8.09753Overweight140/95687000No disorder14095
359360Female59Nurse8.19753Overweight140/95687000No disorder14095
360361Female59Nurse8.29753Overweight140/95687000Sleep Apnea14095
364365Female59Nurse8.09753Overweight140/95687000Sleep Apnea14095
366367Female59Nurse8.19753Overweight140/95687000Sleep Apnea14095
\n", + "

132 rows × 15 columns

\n", + "
" + ], + "text/plain": [ + " Person ID Gender Age Occupation Sleep Duration \\\n", + "0 1 Male 27 Software Engineer 6.1 \n", + "1 2 Male 28 Doctor 6.2 \n", + "3 4 Male 28 Sales Representative 5.9 \n", + "5 6 Male 28 Software Engineer 5.9 \n", + "6 7 Male 29 Teacher 6.3 \n", + ".. ... ... ... ... ... \n", + "358 359 Female 59 Nurse 8.0 \n", + "359 360 Female 59 Nurse 8.1 \n", + "360 361 Female 59 Nurse 8.2 \n", + "364 365 Female 59 Nurse 8.0 \n", + "366 367 Female 59 Nurse 8.1 \n", + "\n", + " Quality of Sleep Physical Activity Level Stress Level BMI Category \\\n", + "0 6 42 6 Overweight \n", + "1 6 60 8 Normal \n", + "3 4 30 8 Obese \n", + "5 4 30 8 Obese \n", + "6 6 40 7 Obese \n", + ".. ... ... ... ... \n", + "358 9 75 3 Overweight \n", + "359 9 75 3 Overweight \n", + "360 9 75 3 Overweight \n", + "364 9 75 3 Overweight \n", + "366 9 75 3 Overweight \n", + "\n", + " Blood Pressure Heart Rate Daily Steps Sleep Disorder systolic \\\n", + "0 126/83 77 4200 No disorder 126 \n", + "1 125/80 75 10000 No disorder 125 \n", + "3 140/90 85 3000 Sleep Apnea 140 \n", + "5 140/90 85 3000 Insomnia 140 \n", + "6 140/90 82 3500 Insomnia 140 \n", + ".. ... ... ... ... ... \n", + "358 140/95 68 7000 No disorder 140 \n", + "359 140/95 68 7000 No disorder 140 \n", + "360 140/95 68 7000 Sleep Apnea 140 \n", + "364 140/95 68 7000 Sleep Apnea 140 \n", + "366 140/95 68 7000 Sleep Apnea 140 \n", + "\n", + " diastolic \n", + "0 83 \n", + "1 80 \n", + "3 90 \n", + "5 90 \n", + "6 90 \n", + ".. ... \n", + "358 95 \n", + "359 95 \n", + "360 95 \n", + "364 95 \n", + "366 95 \n", + "\n", + "[132 rows x 15 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "c5ccd008-6098-43cc-a757-3bd9f5694b2e", + "metadata": {}, + "outputs": [], + "source": [ + "df.to_csv(\"sleep_health_project_clean.csv\", index=False, encoding='utf-8')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b327a050-4dec-4f69-9aa0-741cd30b07d1", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd22573f-b04f-47bc-acff-fb4cc492cf71", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}