2473 lines (2472 with data), 94.8 kB
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "0ccfd357",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.metrics import roc_auc_score\n",
"from datetime import datetime"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "bae4693f",
"metadata": {},
"outputs": [],
"source": [
"vital_signs = pd.read_csv(\"C:/Users/Nirmal/Downloads/inflight_medical_assistance_data_corrected.csv\")\n",
"passenger_info = pd.read_csv(\"C:/Users/Nirmal/Documents/Python Scripts/passenger_profiles_60_passengers_cleaned.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "75f29c80",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Passenger_ID</th>\n",
" <th>SeatNumber</th>\n",
" <th>Timestamp</th>\n",
" <th>Heart_Rate_BPM</th>\n",
" <th>Blood_Oxygen_Level_%</th>\n",
" <th>Blood_Pressure_Systolic</th>\n",
" <th>Blood_Pressure_Diastolic</th>\n",
" <th>Blood_Glucose</th>\n",
" <th>Body_Temperature</th>\n",
" <th>Flight_Altitude_ft</th>\n",
" <th>Cabin_Pressure_psi</th>\n",
" <th>Movement_Activity</th>\n",
" <th>Medical_Event_Flag</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 12:10</td>\n",
" <td>73</td>\n",
" <td>98.1</td>\n",
" <td>111</td>\n",
" <td>66</td>\n",
" <td>89.7</td>\n",
" <td>37.0</td>\n",
" <td>30000</td>\n",
" <td>10.82</td>\n",
" <td>Seated</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 12:30</td>\n",
" <td>82</td>\n",
" <td>96.2</td>\n",
" <td>114</td>\n",
" <td>74</td>\n",
" <td>88.8</td>\n",
" <td>36.2</td>\n",
" <td>30000</td>\n",
" <td>11.04</td>\n",
" <td>Standing</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 12:50</td>\n",
" <td>66</td>\n",
" <td>95.5</td>\n",
" <td>106</td>\n",
" <td>60</td>\n",
" <td>101.1</td>\n",
" <td>36.8</td>\n",
" <td>30000</td>\n",
" <td>10.62</td>\n",
" <td>Seated</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 13:10</td>\n",
" <td>83</td>\n",
" <td>96.9</td>\n",
" <td>105</td>\n",
" <td>61</td>\n",
" <td>90.4</td>\n",
" <td>36.1</td>\n",
" <td>30000</td>\n",
" <td>11.12</td>\n",
" <td>Walking</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 13:30</td>\n",
" <td>68</td>\n",
" <td>98.8</td>\n",
" <td>101</td>\n",
" <td>77</td>\n",
" <td>118.3</td>\n",
" <td>36.1</td>\n",
" <td>30000</td>\n",
" <td>11.41</td>\n",
" <td>Walking</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>535</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 13:30</td>\n",
" <td>85</td>\n",
" <td>98.1</td>\n",
" <td>112</td>\n",
" <td>69</td>\n",
" <td>135.1</td>\n",
" <td>36.5</td>\n",
" <td>30000</td>\n",
" <td>10.77</td>\n",
" <td>Walking</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>536</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 13:50</td>\n",
" <td>86</td>\n",
" <td>96.2</td>\n",
" <td>107</td>\n",
" <td>69</td>\n",
" <td>76.9</td>\n",
" <td>36.9</td>\n",
" <td>30000</td>\n",
" <td>11.04</td>\n",
" <td>Standing</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>537</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 14:10</td>\n",
" <td>61</td>\n",
" <td>97.1</td>\n",
" <td>119</td>\n",
" <td>60</td>\n",
" <td>87.1</td>\n",
" <td>36.3</td>\n",
" <td>30000</td>\n",
" <td>11.14</td>\n",
" <td>Seated</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>538</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 14:30</td>\n",
" <td>61</td>\n",
" <td>96.4</td>\n",
" <td>98</td>\n",
" <td>60</td>\n",
" <td>89.4</td>\n",
" <td>36.7</td>\n",
" <td>30000</td>\n",
" <td>10.96</td>\n",
" <td>Seated</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>539</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 14:50</td>\n",
" <td>94</td>\n",
" <td>98.9</td>\n",
" <td>94</td>\n",
" <td>69</td>\n",
" <td>123.9</td>\n",
" <td>36.4</td>\n",
" <td>30000</td>\n",
" <td>11.33</td>\n",
" <td>Seated</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>540 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" Passenger_ID SeatNumber Timestamp Heart_Rate_BPM \\\n",
"0 1 B23 29-09-2024 12:10 73 \n",
"1 1 B23 29-09-2024 12:30 82 \n",
"2 1 B23 29-09-2024 12:50 66 \n",
"3 1 B23 29-09-2024 13:10 83 \n",
"4 1 B23 29-09-2024 13:30 68 \n",
".. ... ... ... ... \n",
"535 60 A13 29-09-2024 13:30 85 \n",
"536 60 A13 29-09-2024 13:50 86 \n",
"537 60 A13 29-09-2024 14:10 61 \n",
"538 60 A13 29-09-2024 14:30 61 \n",
"539 60 A13 29-09-2024 14:50 94 \n",
"\n",
" Blood_Oxygen_Level_% Blood_Pressure_Systolic Blood_Pressure_Diastolic \\\n",
"0 98.1 111 66 \n",
"1 96.2 114 74 \n",
"2 95.5 106 60 \n",
"3 96.9 105 61 \n",
"4 98.8 101 77 \n",
".. ... ... ... \n",
"535 98.1 112 69 \n",
"536 96.2 107 69 \n",
"537 97.1 119 60 \n",
"538 96.4 98 60 \n",
"539 98.9 94 69 \n",
"\n",
" Blood_Glucose Body_Temperature Flight_Altitude_ft Cabin_Pressure_psi \\\n",
"0 89.7 37.0 30000 10.82 \n",
"1 88.8 36.2 30000 11.04 \n",
"2 101.1 36.8 30000 10.62 \n",
"3 90.4 36.1 30000 11.12 \n",
"4 118.3 36.1 30000 11.41 \n",
".. ... ... ... ... \n",
"535 135.1 36.5 30000 10.77 \n",
"536 76.9 36.9 30000 11.04 \n",
"537 87.1 36.3 30000 11.14 \n",
"538 89.4 36.7 30000 10.96 \n",
"539 123.9 36.4 30000 11.33 \n",
"\n",
" Movement_Activity Medical_Event_Flag \n",
"0 Seated 0 \n",
"1 Standing 0 \n",
"2 Seated 0 \n",
"3 Walking 0 \n",
"4 Walking 0 \n",
".. ... ... \n",
"535 Walking 0 \n",
"536 Standing 0 \n",
"537 Seated 0 \n",
"538 Seated 0 \n",
"539 Seated 0 \n",
"\n",
"[540 rows x 13 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vital_signs"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6a97b0f6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Passenger_ID</th>\n",
" <th>Age</th>\n",
" <th>Gender</th>\n",
" <th>Allergies</th>\n",
" <th>Hypertension</th>\n",
" <th>Diabetes</th>\n",
" <th>Stroke History</th>\n",
" <th>Asthma</th>\n",
" <th>Anxiety</th>\n",
" <th>Obesity</th>\n",
" <th>High Cholesterol</th>\n",
" <th>Sleep Apnea</th>\n",
" <th>Smoking</th>\n",
" <th>Diet</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>66</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>24</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>55</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>32</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>49</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>6</td>\n",
" <td>37</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>7</td>\n",
" <td>20</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>8</td>\n",
" <td>70</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>9</td>\n",
" <td>44</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>10</td>\n",
" <td>55</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>11</td>\n",
" <td>58</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>12</td>\n",
" <td>36</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>13</td>\n",
" <td>48</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>14</td>\n",
" <td>51</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>15</td>\n",
" <td>57</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>16</td>\n",
" <td>36</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>17</td>\n",
" <td>32</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>18</td>\n",
" <td>21</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>19</td>\n",
" <td>55</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>20</td>\n",
" <td>63</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>21</td>\n",
" <td>52</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>22</td>\n",
" <td>63</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>23</td>\n",
" <td>24</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>24</td>\n",
" <td>30</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>25</td>\n",
" <td>75</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>26</td>\n",
" <td>33</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>27</td>\n",
" <td>78</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>28</td>\n",
" <td>45</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>29</td>\n",
" <td>33</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>30</td>\n",
" <td>53</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>31</td>\n",
" <td>49</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>32</td>\n",
" <td>66</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>33</td>\n",
" <td>44</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>34</td>\n",
" <td>65</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>35</td>\n",
" <td>51</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>36</td>\n",
" <td>41</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>37</td>\n",
" <td>29</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>38</td>\n",
" <td>33</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>39</td>\n",
" <td>65</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>40</td>\n",
" <td>45</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>41</td>\n",
" <td>73</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>42</td>\n",
" <td>55</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>43</td>\n",
" <td>49</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>44</td>\n",
" <td>63</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>45</td>\n",
" <td>62</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>46</td>\n",
" <td>21</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>47</td>\n",
" <td>69</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>48</td>\n",
" <td>45</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>49</td>\n",
" <td>35</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>50</td>\n",
" <td>79</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>51</td>\n",
" <td>36</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>52</td>\n",
" <td>69</td>\n",
" <td>Male</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>53</td>\n",
" <td>25</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>54</td>\n",
" <td>54</td>\n",
" <td>Male</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>55</td>\n",
" <td>43</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>56</td>\n",
" <td>46</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>57</td>\n",
" <td>26</td>\n",
" <td>Female</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>58</td>\n",
" <td>35</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Unhealthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>59</td>\n",
" <td>35</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>60</td>\n",
" <td>61</td>\n",
" <td>Female</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Passenger_ID Age Gender Allergies Hypertension Diabetes \\\n",
"0 1 66 Female 1 0 1 \n",
"1 2 24 Female 0 0 0 \n",
"2 3 55 Male 0 0 0 \n",
"3 4 32 Female 1 0 0 \n",
"4 5 49 Female 1 1 0 \n",
"5 6 37 Male 0 0 0 \n",
"6 7 20 Male 0 0 0 \n",
"7 8 70 Male 0 0 0 \n",
"8 9 44 Female 0 1 0 \n",
"9 10 55 Female 0 0 1 \n",
"10 11 58 Female 0 1 0 \n",
"11 12 36 Male 0 0 0 \n",
"12 13 48 Male 1 0 0 \n",
"13 14 51 Male 0 0 0 \n",
"14 15 57 Female 0 0 0 \n",
"15 16 36 Male 0 1 0 \n",
"16 17 32 Male 1 0 0 \n",
"17 18 21 Male 1 1 0 \n",
"18 19 55 Female 0 0 0 \n",
"19 20 63 Female 1 1 1 \n",
"20 21 52 Female 1 0 0 \n",
"21 22 63 Male 1 0 1 \n",
"22 23 24 Female 0 1 0 \n",
"23 24 30 Male 1 0 1 \n",
"24 25 75 Male 1 1 0 \n",
"25 26 33 Male 1 0 0 \n",
"26 27 78 Female 1 0 0 \n",
"27 28 45 Male 1 1 0 \n",
"28 29 33 Female 1 0 0 \n",
"29 30 53 Female 0 0 0 \n",
"30 31 49 Male 0 0 0 \n",
"31 32 66 Female 0 0 0 \n",
"32 33 44 Male 1 1 0 \n",
"33 34 65 Female 0 0 0 \n",
"34 35 51 Male 1 1 0 \n",
"35 36 41 Male 1 0 0 \n",
"36 37 29 Female 0 0 0 \n",
"37 38 33 Female 0 0 0 \n",
"38 39 65 Female 0 0 0 \n",
"39 40 45 Female 1 0 1 \n",
"40 41 73 Male 1 0 0 \n",
"41 42 55 Male 1 1 1 \n",
"42 43 49 Male 1 0 0 \n",
"43 44 63 Female 1 0 0 \n",
"44 45 62 Female 0 0 0 \n",
"45 46 21 Male 0 1 0 \n",
"46 47 69 Male 0 1 0 \n",
"47 48 45 Male 0 0 0 \n",
"48 49 35 Male 0 0 0 \n",
"49 50 79 Male 1 0 0 \n",
"50 51 36 Female 1 0 0 \n",
"51 52 69 Male 1 1 0 \n",
"52 53 25 Female 1 0 0 \n",
"53 54 54 Male 0 0 0 \n",
"54 55 43 Female 1 0 1 \n",
"55 56 46 Female 1 0 0 \n",
"56 57 26 Female 1 0 1 \n",
"57 58 35 Female 0 1 0 \n",
"58 59 35 Female 0 1 0 \n",
"59 60 61 Female 0 0 0 \n",
"\n",
" Stroke History Asthma Anxiety Obesity High Cholesterol Sleep Apnea \\\n",
"0 0 1 0 1 1 0 \n",
"1 0 0 0 0 0 0 \n",
"2 0 0 0 1 1 0 \n",
"3 0 0 0 0 0 0 \n",
"4 0 1 0 1 0 0 \n",
"5 0 0 1 0 0 0 \n",
"6 0 0 0 0 1 0 \n",
"7 0 1 1 0 1 0 \n",
"8 0 1 0 0 0 0 \n",
"9 0 0 0 0 0 0 \n",
"10 0 0 0 0 0 0 \n",
"11 0 0 0 0 1 0 \n",
"12 0 0 0 0 1 0 \n",
"13 1 1 0 0 1 0 \n",
"14 0 0 1 0 0 0 \n",
"15 0 0 0 0 0 0 \n",
"16 0 0 0 0 0 0 \n",
"17 0 0 0 0 0 0 \n",
"18 0 0 0 1 0 0 \n",
"19 0 0 0 0 0 0 \n",
"20 0 0 0 0 0 0 \n",
"21 0 0 1 0 1 0 \n",
"22 0 1 0 0 0 0 \n",
"23 0 0 1 0 0 0 \n",
"24 0 0 0 0 1 0 \n",
"25 0 1 1 0 0 0 \n",
"26 1 0 0 0 0 0 \n",
"27 0 0 0 0 0 0 \n",
"28 0 0 1 1 1 0 \n",
"29 0 0 0 0 0 0 \n",
"30 0 0 1 0 0 1 \n",
"31 0 0 0 1 0 1 \n",
"32 0 0 0 1 1 0 \n",
"33 0 0 0 0 0 0 \n",
"34 0 0 1 1 1 0 \n",
"35 0 0 0 0 1 0 \n",
"36 0 0 0 0 1 0 \n",
"37 0 1 0 1 0 0 \n",
"38 0 1 0 0 0 0 \n",
"39 0 0 0 0 0 0 \n",
"40 0 0 0 0 0 0 \n",
"41 0 0 0 0 0 0 \n",
"42 0 0 1 0 0 0 \n",
"43 0 1 0 0 0 0 \n",
"44 0 0 0 0 0 0 \n",
"45 0 0 1 0 0 0 \n",
"46 0 0 0 0 0 0 \n",
"47 0 1 0 1 1 0 \n",
"48 0 0 0 0 0 0 \n",
"49 0 0 1 0 1 0 \n",
"50 0 0 0 0 0 0 \n",
"51 0 0 0 0 0 0 \n",
"52 0 1 0 1 0 0 \n",
"53 1 0 0 0 1 0 \n",
"54 0 0 0 0 0 1 \n",
"55 0 0 0 0 1 0 \n",
"56 0 0 0 0 0 0 \n",
"57 0 0 0 0 0 0 \n",
"58 0 0 0 0 0 0 \n",
"59 0 0 0 1 0 0 \n",
"\n",
" Smoking Diet \n",
"0 0 Average \n",
"1 1 Healthy \n",
"2 0 Average \n",
"3 1 Unhealthy \n",
"4 0 Unhealthy \n",
"5 0 Healthy \n",
"6 0 Healthy \n",
"7 0 Unhealthy \n",
"8 0 Unhealthy \n",
"9 0 Healthy \n",
"10 0 Average \n",
"11 1 Unhealthy \n",
"12 0 Healthy \n",
"13 0 Average \n",
"14 0 Healthy \n",
"15 0 Healthy \n",
"16 1 Unhealthy \n",
"17 0 Unhealthy \n",
"18 0 Healthy \n",
"19 1 Unhealthy \n",
"20 0 Unhealthy \n",
"21 0 Healthy \n",
"22 1 Average \n",
"23 0 Unhealthy \n",
"24 1 Average \n",
"25 0 Unhealthy \n",
"26 1 Healthy \n",
"27 0 Healthy \n",
"28 0 Healthy \n",
"29 0 Unhealthy \n",
"30 0 Healthy \n",
"31 0 Unhealthy \n",
"32 0 Average \n",
"33 0 Healthy \n",
"34 0 Unhealthy \n",
"35 0 Healthy \n",
"36 0 Unhealthy \n",
"37 0 Healthy \n",
"38 1 Healthy \n",
"39 0 Average \n",
"40 0 Average \n",
"41 0 Unhealthy \n",
"42 0 Healthy \n",
"43 0 Healthy \n",
"44 0 Unhealthy \n",
"45 0 Unhealthy \n",
"46 0 Unhealthy \n",
"47 0 Healthy \n",
"48 0 Healthy \n",
"49 1 Unhealthy \n",
"50 0 Unhealthy \n",
"51 0 Average \n",
"52 1 Healthy \n",
"53 0 Average \n",
"54 0 Average \n",
"55 0 Average \n",
"56 0 Unhealthy \n",
"57 1 Unhealthy \n",
"58 0 Healthy \n",
"59 0 Healthy "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"passenger_info"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c51f2c12",
"metadata": {},
"outputs": [],
"source": [
"data = pd.merge(vital_signs, passenger_info, on='Passenger_ID')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "b026531e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Passenger_ID</th>\n",
" <th>SeatNumber</th>\n",
" <th>Timestamp</th>\n",
" <th>Heart_Rate_BPM</th>\n",
" <th>Blood_Oxygen_Level_%</th>\n",
" <th>Blood_Pressure_Systolic</th>\n",
" <th>Blood_Pressure_Diastolic</th>\n",
" <th>Blood_Glucose</th>\n",
" <th>Body_Temperature</th>\n",
" <th>Flight_Altitude_ft</th>\n",
" <th>...</th>\n",
" <th>Hypertension</th>\n",
" <th>Diabetes</th>\n",
" <th>Stroke History</th>\n",
" <th>Asthma</th>\n",
" <th>Anxiety</th>\n",
" <th>Obesity</th>\n",
" <th>High Cholesterol</th>\n",
" <th>Sleep Apnea</th>\n",
" <th>Smoking</th>\n",
" <th>Diet</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 12:10</td>\n",
" <td>73</td>\n",
" <td>98.1</td>\n",
" <td>111</td>\n",
" <td>66</td>\n",
" <td>89.7</td>\n",
" <td>37.0</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 12:30</td>\n",
" <td>82</td>\n",
" <td>96.2</td>\n",
" <td>114</td>\n",
" <td>74</td>\n",
" <td>88.8</td>\n",
" <td>36.2</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 12:50</td>\n",
" <td>66</td>\n",
" <td>95.5</td>\n",
" <td>106</td>\n",
" <td>60</td>\n",
" <td>101.1</td>\n",
" <td>36.8</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 13:10</td>\n",
" <td>83</td>\n",
" <td>96.9</td>\n",
" <td>105</td>\n",
" <td>61</td>\n",
" <td>90.4</td>\n",
" <td>36.1</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>B23</td>\n",
" <td>29-09-2024 13:30</td>\n",
" <td>68</td>\n",
" <td>98.8</td>\n",
" <td>101</td>\n",
" <td>77</td>\n",
" <td>118.3</td>\n",
" <td>36.1</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Average</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>535</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 13:30</td>\n",
" <td>85</td>\n",
" <td>98.1</td>\n",
" <td>112</td>\n",
" <td>69</td>\n",
" <td>135.1</td>\n",
" <td>36.5</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>536</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 13:50</td>\n",
" <td>86</td>\n",
" <td>96.2</td>\n",
" <td>107</td>\n",
" <td>69</td>\n",
" <td>76.9</td>\n",
" <td>36.9</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>537</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 14:10</td>\n",
" <td>61</td>\n",
" <td>97.1</td>\n",
" <td>119</td>\n",
" <td>60</td>\n",
" <td>87.1</td>\n",
" <td>36.3</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>538</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 14:30</td>\n",
" <td>61</td>\n",
" <td>96.4</td>\n",
" <td>98</td>\n",
" <td>60</td>\n",
" <td>89.4</td>\n",
" <td>36.7</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" <tr>\n",
" <th>539</th>\n",
" <td>60</td>\n",
" <td>A13</td>\n",
" <td>29-09-2024 14:50</td>\n",
" <td>94</td>\n",
" <td>98.9</td>\n",
" <td>94</td>\n",
" <td>69</td>\n",
" <td>123.9</td>\n",
" <td>36.4</td>\n",
" <td>30000</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Healthy</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>540 rows × 26 columns</p>\n",
"</div>"
],
"text/plain": [
" Passenger_ID SeatNumber Timestamp Heart_Rate_BPM \\\n",
"0 1 B23 29-09-2024 12:10 73 \n",
"1 1 B23 29-09-2024 12:30 82 \n",
"2 1 B23 29-09-2024 12:50 66 \n",
"3 1 B23 29-09-2024 13:10 83 \n",
"4 1 B23 29-09-2024 13:30 68 \n",
".. ... ... ... ... \n",
"535 60 A13 29-09-2024 13:30 85 \n",
"536 60 A13 29-09-2024 13:50 86 \n",
"537 60 A13 29-09-2024 14:10 61 \n",
"538 60 A13 29-09-2024 14:30 61 \n",
"539 60 A13 29-09-2024 14:50 94 \n",
"\n",
" Blood_Oxygen_Level_% Blood_Pressure_Systolic Blood_Pressure_Diastolic \\\n",
"0 98.1 111 66 \n",
"1 96.2 114 74 \n",
"2 95.5 106 60 \n",
"3 96.9 105 61 \n",
"4 98.8 101 77 \n",
".. ... ... ... \n",
"535 98.1 112 69 \n",
"536 96.2 107 69 \n",
"537 97.1 119 60 \n",
"538 96.4 98 60 \n",
"539 98.9 94 69 \n",
"\n",
" Blood_Glucose Body_Temperature Flight_Altitude_ft ... Hypertension \\\n",
"0 89.7 37.0 30000 ... 0 \n",
"1 88.8 36.2 30000 ... 0 \n",
"2 101.1 36.8 30000 ... 0 \n",
"3 90.4 36.1 30000 ... 0 \n",
"4 118.3 36.1 30000 ... 0 \n",
".. ... ... ... ... ... \n",
"535 135.1 36.5 30000 ... 0 \n",
"536 76.9 36.9 30000 ... 0 \n",
"537 87.1 36.3 30000 ... 0 \n",
"538 89.4 36.7 30000 ... 0 \n",
"539 123.9 36.4 30000 ... 0 \n",
"\n",
" Diabetes Stroke History Asthma Anxiety Obesity High Cholesterol \\\n",
"0 1 0 1 0 1 1 \n",
"1 1 0 1 0 1 1 \n",
"2 1 0 1 0 1 1 \n",
"3 1 0 1 0 1 1 \n",
"4 1 0 1 0 1 1 \n",
".. ... ... ... ... ... ... \n",
"535 0 0 0 0 1 0 \n",
"536 0 0 0 0 1 0 \n",
"537 0 0 0 0 1 0 \n",
"538 0 0 0 0 1 0 \n",
"539 0 0 0 0 1 0 \n",
"\n",
" Sleep Apnea Smoking Diet \n",
"0 0 0 Average \n",
"1 0 0 Average \n",
"2 0 0 Average \n",
"3 0 0 Average \n",
"4 0 0 Average \n",
".. ... ... ... \n",
"535 0 0 Healthy \n",
"536 0 0 Healthy \n",
"537 0 0 Healthy \n",
"538 0 0 Healthy \n",
"539 0 0 Healthy \n",
"\n",
"[540 rows x 26 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "53702f00",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import LabelEncoder"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "5e5b8d30",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Passenger_ID SeatNumber Timestamp Heart_Rate_BPM \\\n",
"0 1 B23 29-09-2024 12:10 73 \n",
"1 1 B23 29-09-2024 12:30 82 \n",
"2 1 B23 29-09-2024 12:50 66 \n",
"3 1 B23 29-09-2024 13:10 83 \n",
"4 1 B23 29-09-2024 13:30 68 \n",
"\n",
" Blood_Oxygen_Level_% Blood_Pressure_Systolic Blood_Pressure_Diastolic \\\n",
"0 98.1 111 66 \n",
"1 96.2 114 74 \n",
"2 95.5 106 60 \n",
"3 96.9 105 61 \n",
"4 98.8 101 77 \n",
"\n",
" Blood_Glucose Body_Temperature Flight_Altitude_ft ... Hypertension \\\n",
"0 89.7 37.0 30000 ... 0 \n",
"1 88.8 36.2 30000 ... 0 \n",
"2 101.1 36.8 30000 ... 0 \n",
"3 90.4 36.1 30000 ... 0 \n",
"4 118.3 36.1 30000 ... 0 \n",
"\n",
" Diabetes Stroke History Asthma Anxiety Obesity High Cholesterol \\\n",
"0 1 0 1 0 1 1 \n",
"1 1 0 1 0 1 1 \n",
"2 1 0 1 0 1 1 \n",
"3 1 0 1 0 1 1 \n",
"4 1 0 1 0 1 1 \n",
"\n",
" Sleep Apnea Smoking Diet \n",
"0 0 0 0 \n",
"1 0 0 0 \n",
"2 0 0 0 \n",
"3 0 0 0 \n",
"4 0 0 0 \n",
"\n",
"[5 rows x 26 columns]\n"
]
}
],
"source": [
"label_encoder = LabelEncoder()\n",
"\n",
"columns_to_encode = ['Gender', 'Allergies', 'Diet', 'Movement_Activity']\n",
"\n",
"for column in columns_to_encode:\n",
" data[column] = label_encoder.fit_transform(data[column])\n",
"__\n",
"print(data.head())"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a7d78adb",
"metadata": {},
"outputs": [],
"source": [
"vital_signs_cols = ['Heart_Rate_BPM', 'Blood_Oxygen_Level_%', 'Blood_Pressure_Systolic', \n",
" 'Blood_Pressure_Diastolic', 'Blood_Glucose', 'Body_Temperature']\n",
"\n",
"for sign in vital_signs_cols:\n",
" data[f'{sign}_rolling_avg_5'] = data.groupby('Passenger_ID')[sign].rolling(window=5).mean().reset_index(0, drop=True)\n",
" data[f'{sign}_rolling_std_5'] = data.groupby('Passenger_ID')[sign].rolling(window=5).std().reset_index(0, drop=True)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "099475ee",
"metadata": {},
"outputs": [],
"source": [
"for sign in vital_signs_cols:\n",
" data[f'{sign}_rate_of_change'] = data.groupby('Passenger_ID')[sign].diff()\n",
"\n",
"data['BP_Ratio'] = data['Blood_Pressure_Systolic'] / data['Blood_Pressure_Diastolic']\n",
"data['HR_BP_Product'] = data['Heart_Rate_BPM'] * data['Blood_Pressure_Systolic']"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "dc85bda9",
"metadata": {},
"outputs": [],
"source": [
"data.fillna(0, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "cbaf822c",
"metadata": {},
"outputs": [],
"source": [
"features = data.drop(['Passenger_ID', 'SeatNumber','Timestamp', 'Medical_Event_Flag'], axis=1)\n",
"target = data['Medical_Event_Flag']"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "d1e93d17",
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "e88b3921",
"metadata": {},
"outputs": [],
"source": [
"scaler = StandardScaler()\n",
"X_train_scaled = scaler.fit_transform(X_train)\n",
"X_test_scaled = scaler.transform(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "be29f9e0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestClassifier(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestClassifier</label><div class=\"sk-toggleable__content\"><pre>RandomForestClassifier(random_state=42)</pre></div></div></div></div></div>"
],
"text/plain": [
"RandomForestClassifier(random_state=42)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = RandomForestClassifier(n_estimators=100, random_state=42)\n",
"model.fit(X_train_scaled, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "8c49f804",
"metadata": {},
"outputs": [],
"source": [
"risk_scores = model.predict_proba(X_test_scaled)[:, 1]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "d081ca3a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model AUC-ROC Score: 1.0\n"
]
}
],
"source": [
"auc_score = roc_auc_score(y_test, risk_scores)\n",
"print(f\"Model AUC-ROC Score: {auc_score}\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "c1a65c2c",
"metadata": {},
"outputs": [],
"source": [
"data['Risk_Score'] = model.predict_proba(scaler.transform(features))[:, 1]\n",
"high_risk_threshold = 0.7\n",
"high_risk_passengers = data[data['Risk_Score'] > high_risk_threshold]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "05f287e9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"High-Risk Passengers:\n",
" Passenger_ID Risk_Score Heart_Rate_BPM Blood_Oxygen_Level_% \\\n",
"36 5 0.76 94 98.2 \n",
"37 5 0.80 79 95.0 \n",
"38 5 0.81 76 98.8 \n",
"40 5 0.87 76 97.0 \n",
"41 5 0.83 72 97.2 \n",
"43 5 0.83 65 96.8 \n",
"44 5 0.82 67 98.4 \n",
"\n",
" Blood_Pressure_Systolic Blood_Pressure_Diastolic Blood_Glucose \\\n",
"36 91 68 120.4 \n",
"37 96 69 136.7 \n",
"38 112 67 121.3 \n",
"40 94 74 96.7 \n",
"41 95 76 92.5 \n",
"43 120 63 78.2 \n",
"44 94 68 106.0 \n",
"\n",
" Body_Temperature \n",
"36 38.2 \n",
"37 38.4 \n",
"38 38.0 \n",
"40 38.0 \n",
"41 38.2 \n",
"43 37.7 \n",
"44 38.1 \n"
]
}
],
"source": [
"print(\"\\nHigh-Risk Passengers:\")\n",
"print(high_risk_passengers[['Passenger_ID', 'Risk_Score', 'Heart_Rate_BPM', 'Blood_Oxygen_Level_%', 'Blood_Pressure_Systolic', \n",
" 'Blood_Pressure_Diastolic', 'Blood_Glucose', 'Body_Temperature']])"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "5b19b573",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" Medical Alert: Passenger ID 5\n",
" Timestamp: 29-09-2024 12:10\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: 5\n",
" - Heart Rate (BPM): 94 (Normal: 60-100)\n",
" - Blood Oxygen Level (%): 98.2 (Normal: 95-100)\n",
" - Blood Pressure (Systolic/Diastolic): 91/68 (Normal: 90-120 / 60-80)\n",
" - Blood Glucose (mg/dL): 120.4 (Normal: 70-140)\n",
" - Body Temperature (°C): 38.2 (Normal: 36.5-37.5)\n",
"\n",
" Risk Score: 0.76\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \n",
"\n",
" Medical Alert: Passenger ID 5\n",
" Timestamp: 29-09-2024 12:30\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: 5\n",
" - Heart Rate (BPM): 79 (Normal: 60-100)\n",
" - Blood Oxygen Level (%): 95.0 (Normal: 95-100)\n",
" - Blood Pressure (Systolic/Diastolic): 96/69 (Normal: 90-120 / 60-80)\n",
" - Blood Glucose (mg/dL): 136.7 (Normal: 70-140)\n",
" - Body Temperature (°C): 38.4 (Normal: 36.5-37.5)\n",
"\n",
" Risk Score: 0.8\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \n",
"\n",
" Medical Alert: Passenger ID 5\n",
" Timestamp: 29-09-2024 12:50\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: 5\n",
" - Heart Rate (BPM): 76 (Normal: 60-100)\n",
" - Blood Oxygen Level (%): 98.8 (Normal: 95-100)\n",
" - Blood Pressure (Systolic/Diastolic): 112/67 (Normal: 90-120 / 60-80)\n",
" - Blood Glucose (mg/dL): 121.3 (Normal: 70-140)\n",
" - Body Temperature (°C): 38.0 (Normal: 36.5-37.5)\n",
"\n",
" Risk Score: 0.81\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \n",
"\n",
" Medical Alert: Passenger ID 5\n",
" Timestamp: 29-09-2024 13:30\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: 5\n",
" - Heart Rate (BPM): 76 (Normal: 60-100)\n",
" - Blood Oxygen Level (%): 97.0 (Normal: 95-100)\n",
" - Blood Pressure (Systolic/Diastolic): 94/74 (Normal: 90-120 / 60-80)\n",
" - Blood Glucose (mg/dL): 96.7 (Normal: 70-140)\n",
" - Body Temperature (°C): 38.0 (Normal: 36.5-37.5)\n",
"\n",
" Risk Score: 0.87\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \n",
"\n",
" Medical Alert: Passenger ID 5\n",
" Timestamp: 29-09-2024 13:50\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: 5\n",
" - Heart Rate (BPM): 72 (Normal: 60-100)\n",
" - Blood Oxygen Level (%): 97.2 (Normal: 95-100)\n",
" - Blood Pressure (Systolic/Diastolic): 95/76 (Normal: 90-120 / 60-80)\n",
" - Blood Glucose (mg/dL): 92.5 (Normal: 70-140)\n",
" - Body Temperature (°C): 38.2 (Normal: 36.5-37.5)\n",
"\n",
" Risk Score: 0.83\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \n",
"\n",
" Medical Alert: Passenger ID 5\n",
" Timestamp: 29-09-2024 14:30\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: 5\n",
" - Heart Rate (BPM): 65 (Normal: 60-100)\n",
" - Blood Oxygen Level (%): 96.8 (Normal: 95-100)\n",
" - Blood Pressure (Systolic/Diastolic): 120/63 (Normal: 90-120 / 60-80)\n",
" - Blood Glucose (mg/dL): 78.2 (Normal: 70-140)\n",
" - Body Temperature (°C): 37.7 (Normal: 36.5-37.5)\n",
"\n",
" Risk Score: 0.83\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \n",
"\n",
" Medical Alert: Passenger ID 5\n",
" Timestamp: 29-09-2024 14:50\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: 5\n",
" - Heart Rate (BPM): 67 (Normal: 60-100)\n",
" - Blood Oxygen Level (%): 98.4 (Normal: 95-100)\n",
" - Blood Pressure (Systolic/Diastolic): 94/68 (Normal: 90-120 / 60-80)\n",
" - Blood Glucose (mg/dL): 106.0 (Normal: 70-140)\n",
" - Body Temperature (°C): 38.1 (Normal: 36.5-37.5)\n",
"\n",
" Risk Score: 0.82\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \n"
]
}
],
"source": [
"high_temperature_threshold = 37.5\n",
"\n",
"normal_ranges = {\n",
" 'Heart Rate (BPM)': '60-100',\n",
" 'Blood Oxygen Level (%)': '95-100',\n",
" 'Blood Pressure (Systolic/Diastolic)': '90-120 / 60-80',\n",
" 'Blood Glucose (mg/dL)': '70-140',\n",
" 'Body Temperature (°C)': '36.5-37.5'\n",
"}\n",
"\n",
"high_temp_passengers = high_risk_passengers[high_risk_passengers['Body_Temperature'] > high_temperature_threshold]\n",
"\n",
"if not high_temp_passengers.empty:\n",
" for index, row in high_temp_passengers.iterrows():\n",
" timestamp = datetime.now().strftime(\"%Y-%m-%d %H:%M:%S\")\n",
"\n",
" alert_message = f\"\"\"\n",
" Medical Alert: Passenger ID {row['Passenger_ID']}\n",
" Timestamp: {row['Timestamp']}\n",
" Risk Level: High\n",
" Health Anomalies Detected: Elevated Body Temperature\n",
"\n",
" Passenger Details:\n",
" - Passenger ID: {row['Passenger_ID']}\n",
" - Heart Rate (BPM): {row['Heart_Rate_BPM']} (Normal: {normal_ranges['Heart Rate (BPM)']})\n",
" - Blood Oxygen Level (%): {row['Blood_Oxygen_Level_%']} (Normal: {normal_ranges['Blood Oxygen Level (%)']})\n",
" - Blood Pressure (Systolic/Diastolic): {row['Blood_Pressure_Systolic']}/{row['Blood_Pressure_Diastolic']} (Normal: {normal_ranges['Blood Pressure (Systolic/Diastolic)']})\n",
" - Blood Glucose (mg/dL): {row['Blood_Glucose']} (Normal: {normal_ranges['Blood Glucose (mg/dL)']})\n",
" - Body Temperature (°C): {row['Body_Temperature']} (Normal: {normal_ranges['Body Temperature (°C)']})\n",
"\n",
" Risk Score: {row['Risk_Score']}\n",
"\n",
" Actions Needed:\n",
" - Passenger's body temperature is abnormally high, indicating a potential fever. Immediate attention is required to assess possible causes, such as infection or inflammation.\n",
" - Cabin crew should assess the passenger's condition, ensure hydration, and contact medical personnel if necessary.\n",
" \"\"\"\n",
" print(alert_message)\n",
"else:\n",
" print(\"No high temperature detected for any high-risk passengers.\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fa71d6a0",
"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.11.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}