--- a +++ b/notebooks/feature_engineering.ipynb @@ -0,0 +1,5795 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **FEATURE ENGINEERING**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have too many columns with values True/ NaN. We will try to group them by categories. \n", + "<br/> <br/>\n", + " **Diagnoses**\n", + "- Respiratory Disorders\n", + "- Heart and Cardiovascular Diseases\n", + "- Metabolic and Endocrine Disorders\n", + "- Neurological Disorders\n", + "- Orthopedic Injuries\n", + "- Mental Health Conditions\n", + "- Reproductive and Pregnancy-related\n", + "\n", + "**Medications**\n", + "- Pain Relievers and Analgesics\n", + "- Cardiovascular and Blood Pressure Medications\n", + "- Infection Medications\n", + "- Oral Medications\n", + "- Other Medications\n", + "\n", + "**Treatments and Care**\n", + "- Therapies and Regimes\n", + "- Diagnostic Procedures\n", + "- Surgerical Interventions\n", + "- Patient Care Management\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "from tabulate import tabulate" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "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>label</th>\n", + " <th>scc</th>\n", + " <th>race</th>\n", + " <th>marital</th>\n", + " <th>ethnic</th>\n", + " <th>gender</th>\n", + " <th>state</th>\n", + " <th>age</th>\n", + " <th>Pain severity - 0-10 verbal numeric rating [Score] - Reported</th>\n", + " <th>Influenza seasonal injectable preservative free</th>\n", + " <th>...</th>\n", + " <th>Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection</th>\n", + " <th>Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection</th>\n", + " <th>Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection</th>\n", + " <th>Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection</th>\n", + " <th>SARS-CoV-2 RNA Pnl Resp NAA+probe</th>\n", + " <th>Hydroxychloroquine Sulfate 200 MG Oral Tablet</th>\n", + " <th>1 ML denosumab 60 MG/ML Prefilled Syringe</th>\n", + " <th>Fexofenadine hydrochloride 60 MG Oral Tablet</th>\n", + " <th>Leronlimab 700 MG Injection</th>\n", + " <th>Lenzilumab 200 MG IV</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>0</td>\n", + " <td>101</td>\n", + " <td>white</td>\n", + " <td>m</td>\n", + " <td>nonhispanic</td>\n", + " <td>m</td>\n", + " <td>massachusetts</td>\n", + " <td>50t70</td>\n", + " <td>abnormal</td>\n", + " <td>True</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>0</td>\n", + " <td>110</td>\n", + " <td>white</td>\n", + " <td>m</td>\n", + " <td>nonhispanic</td>\n", + " <td>m</td>\n", + " <td>massachusetts</td>\n", + " <td>50t70</td>\n", + " <td>normal</td>\n", + " <td>True</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>0</td>\n", + " <td>127</td>\n", + " <td>black</td>\n", + " <td>m</td>\n", + " <td>nonhispanic</td>\n", + " <td>m</td>\n", + " <td>massachusetts</td>\n", + " <td>50t70</td>\n", + " <td>abnormal</td>\n", + " <td>True</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>0</td>\n", + " <td>129</td>\n", + " <td>white</td>\n", + " <td>m</td>\n", + " <td>nonhispanic</td>\n", + " <td>m</td>\n", + " <td>massachusetts</td>\n", + " <td>50t70</td>\n", + " <td>abnormal</td>\n", + " <td>True</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>1</td>\n", + " <td>69</td>\n", + " <td>white</td>\n", + " <td>m</td>\n", + " <td>nonhispanic</td>\n", + " <td>m</td>\n", + " <td>massachusetts</td>\n", + " <td>50t70</td>\n", + " <td>abnormal</td>\n", + " <td>True</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>5 rows × 783 columns</p>\n", + "</div>" + ], + "text/plain": [ + " label scc race marital ethnic gender state age \\\n", + "0 0 101 white m nonhispanic m massachusetts 50t70 \n", + "1 0 110 white m nonhispanic m massachusetts 50t70 \n", + "2 0 127 black m nonhispanic m massachusetts 50t70 \n", + "3 0 129 white m nonhispanic m massachusetts 50t70 \n", + "4 1 69 white m nonhispanic m massachusetts 50t70 \n", + "\n", + " Pain severity - 0-10 verbal numeric rating [Score] - Reported \\\n", + "0 abnormal \n", + "1 normal \n", + "2 abnormal \n", + "3 abnormal \n", + "4 abnormal \n", + "\n", + " Influenza seasonal injectable preservative free ... \\\n", + "0 True ... \n", + "1 True ... \n", + "2 True ... \n", + "3 True ... \n", + "4 True ... \n", + "\n", + " Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " SARS-CoV-2 RNA Pnl Resp NAA+probe \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Hydroxychloroquine Sulfate 200 MG Oral Tablet \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " 1 ML denosumab 60 MG/ML Prefilled Syringe \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + " Fexofenadine hydrochloride 60 MG Oral Tablet Leronlimab 700 MG Injection \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "\n", + " Lenzilumab 200 MG IV \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "\n", + "[5 rows x 783 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv('../data/learning_data.csv')\n", + "df = df.drop('ptnum', axis=1)\n", + "df.drop(columns=['C-20565-8'], inplace=True)\n", + "df_codes = pd.read_csv('../data/codes.csv')\n", + "code_to_name = df_codes.set_index('code')['name'].to_dict()\n", + "df = df.rename(columns=code_to_name)\n", + "df2 = df.copy()\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "DataFrame after combining columns with the same name:\n", + " Facial laceration Norinyl 1+50 28 Day Pack Intubation \\\n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", + "... ... ... ... \n", + "9043 NaN NaN NaN \n", + "9044 NaN NaN NaN \n", + "9045 NaN NaN NaN \n", + "9046 NaN NaN NaN \n", + "9047 NaN NaN NaN \n", + "\n", + " Amlodipine 5 MG Oral Tablet anastrozole 1 MG Oral Tablet \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9043 NaN NaN \n", + "9044 NaN NaN \n", + "9045 True NaN \n", + "9046 NaN NaN \n", + "9047 NaN NaN \n", + "\n", + " Take blood sample Lack of access to transportation (finding) \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9043 NaN NaN \n", + "9044 NaN NaN \n", + "9045 NaN NaN \n", + "9046 NaN NaN \n", + "9047 NaN NaN \n", + "\n", + " Incision of trachea (procedure) Alteplase 100 MG Injection \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9043 NaN NaN \n", + "9044 NaN NaN \n", + "9045 NaN NaN \n", + "9046 NaN True \n", + "9047 NaN NaN \n", + "\n", + " Referral to hypertension clinic ... Camila 28 Day Pack \\\n", + "0 NaN ... NaN \n", + "1 NaN ... NaN \n", + "2 NaN ... NaN \n", + "3 NaN ... NaN \n", + "4 NaN ... NaN \n", + "... ... ... ... \n", + "9043 NaN ... NaN \n", + "9044 NaN ... NaN \n", + "9045 NaN ... NaN \n", + "9046 NaN ... NaN \n", + "9047 NaN ... NaN \n", + "\n", + " History of appendectomy remifentanil 2 MG Injection \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9043 NaN NaN \n", + "9044 NaN NaN \n", + "9045 NaN NaN \n", + "9046 NaN NaN \n", + "9047 NaN NaN \n", + "\n", + " Chlorpheniramine Maleate 4 MG Oral Tablet Fetal anatomy study \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9043 NaN NaN \n", + "9044 NaN NaN \n", + "9045 NaN NaN \n", + "9046 NaN NaN \n", + "9047 NaN NaN \n", + "\n", + " Bicarbonate [Moles/volume] in Arterial blood \\\n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "9043 NaN \n", + "9044 NaN \n", + "9045 NaN \n", + "9046 NaN \n", + "9047 NaN \n", + "\n", + " Screening mammography (procedure) Sertraline 100 MG Oral Tablet \\\n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9043 NaN NaN \n", + "9044 NaN NaN \n", + "9045 NaN NaN \n", + "9046 NaN NaN \n", + "9047 NaN NaN \n", + "\n", + " Transport problems (finding) Sulfamethoxazole / Trimethoprim \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN \n", + "... ... ... \n", + "9043 NaN NaN \n", + "9044 NaN NaN \n", + "9045 NaN NaN \n", + "9046 NaN NaN \n", + "9047 NaN NaN \n", + "\n", + "[9048 rows x 779 columns]\n" + ] + } + ], + "source": [ + "columns = df.columns\n", + "unique_columns = list(set(columns)) # Get unique column names\n", + "\n", + "# Create a new DataFrame with combined columns\n", + "df_combined = pd.DataFrame()\n", + "\n", + "# Iterate over the unique columns to combine and merge appropriately\n", + "for col in unique_columns:\n", + " if list(columns).count(col) > 1: # If the column name is duplicated\n", + " # Find all columns with this name and combine them, e.g., with first non-null\n", + " combined_series = df[[col]].bfill(axis=1).iloc[:, 0] # Backfill to combine\n", + " df_combined[col] = combined_series\n", + " else:\n", + " df_combined[col] = df[col] # If it's unique, just copy the column\n", + "\n", + "print(\"\\nDataFrame after combining columns with the same name:\")\n", + "print(df_combined)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "df2 = df_combined.copy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating new features" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "respiratory_disorders_columns = [\n", + " 'Acute bacterial sinusitis (disorder)',\n", + " 'Acute bronchitis (disorder)',\n", + " 'Acute respiratory distress syndrome (disorder)',\n", + " 'Acute viral pharyngitis (disorder)',\n", + " 'Asthma',\n", + " 'Asthma screening',\n", + " 'Bacterial infectious disease (disorder)',\n", + " 'COVID-19',\n", + " 'Chronic obstructive bronchitis (disorder)',\n", + " 'Cough (finding)',\n", + " 'Dyspnea (finding)',\n", + " 'Fever (finding)',\n", + " 'Hemoptysis (finding)',\n", + " 'Hypoxemia (disorder)',\n", + " 'Measurement of respiratory function (procedure)',\n", + " 'NDA020503 200 ACTUAT Albuterol 0.09 MG/ACTUAT Metered Dose Inhaler',\n", + " 'Nasal congestion (finding)',\n", + " 'Nasal sinus endoscopy (procedure)',\n", + " 'Otitis media',\n", + " 'Oxygen Therapy',\n", + " 'Pneumococcal conjugate PCV 13',\n", + " 'Pneumonia (disorder)',\n", + " 'Pulmonary emphysema (disorder)',\n", + " 'Respiratory distress (finding)',\n", + " 'Sore throat symptom (finding)',\n", + " 'Sputum examination (procedure)',\n", + " 'Sputum finding (finding)',\n", + " 'Streptococcal sore throat (disorder)',\n", + " 'Streptococcus pneumoniae group B antigen test',\n", + " 'Throat culture (procedure)',\n", + " 'Total knee replacement',\n", + " 'Transfer to stepdown unit (procedure)',\n", + " 'Transplant of lung (procedure)',\n", + " 'Viral sinusitis (disorder)',\n", + " 'House dust mite (organism)',\n", + " 'Mold (organism)',\n", + " 'Grass pollen (substance)',\n", + " 'Tree pollen (substance)',\n", + " 'Animal dander (substance)',\n", + " 'Wheezing (finding)'\n", + "]\n", + "\n", + "df2['Respiratory Disorders'] = df2[respiratory_disorders_columns].sum(axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "heart_and_cardiovascular_diseases_columns = [\n", + " 'Acute deep venous thrombosis (disorder)',\n", + " 'Acute pulmonary embolism (disorder)',\n", + " 'Atrial Fibrillation',\n", + " 'Blindness due to type 2 diabetes mellitus (disorder)',\n", + " 'Chronic congestive heart failure (disorder)',\n", + " 'Coronary Heart Disease',\n", + " 'Diabetes',\n", + " 'Diabetic renal disease (disorder)',\n", + " 'Diabetic retinopathy associated with type II diabetes mellitus (disorder)',\n", + " 'Hyperglycemia (disorder)',\n", + " 'Hypertension',\n", + " 'Hyperlipidemia',\n", + " 'Hypertriglyceridemia (disorder)',\n", + " 'Myocardial Infarction',\n", + " 'Stroke',\n", + " 'Heart failure (disorder)'\n", + "]\n", + "\n", + "\n", + "df2['Heart and Cardiovascular Diseases'] = df2[heart_and_cardiovascular_diseases_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "metabolic_and_endocrine_disorders_columns = [\n", + " 'Alcoholism',\n", + " 'Anemia (disorder)',\n", + " 'Body mass index 30+ - obesity (finding)',\n", + " 'Chronic kidney disease stage 1 (disorder)',\n", + " 'Chronic kidney disease stage 2 (disorder)',\n", + " 'Chronic kidney disease stage 3 (disorder)',\n", + " 'Fatigue (finding)',\n", + " 'Gout',\n", + " 'Hyperlipidemia',\n", + " 'Hypertension',\n", + " 'Hypertriglyceridemia (disorder)',\n", + " 'Hypoxemia (disorder)',\n", + " 'Idiopathic atrophic hypothyroidism',\n", + " 'Loss of taste (finding)',\n", + " 'Macular edema and retinopathy due to type 2 diabetes mellitus (disorder)',\n", + " 'Metabolic syndrome X (disorder)',\n", + " 'Microalbuminuria due to type 2 diabetes mellitus (disorder)',\n", + " 'Neuropathy due to type 2 diabetes mellitus (disorder)',\n", + " 'Nonproliferative diabetic retinopathy due to type 2 diabetes mellitus (disorder)',\n", + " 'Osteoarthritis of hip',\n", + " 'Osteoarthritis of knee',\n", + " 'Osteoporosis (disorder)',\n", + " 'Pathological fracture due to osteoporosis (disorder)',\n", + " 'Prediabetes',\n", + " 'Proteinuria due to type 2 diabetes mellitus (disorder)',\n", + " 'Protracted diarrhea',\n", + " 'Rheumatoid arthritis',\n", + " 'Secondary malignant neoplasm of colon',\n", + " 'Stress (finding)',\n", + " 'Unhealthy alcohol drinking behavior (finding)',\n", + " 'Whiplash injury to neck',\n", + " 'Proliferative diabetic retinopathy due to type II diabetes mellitus (disorder)'\n", + "]\n", + "\n", + "df2['Metabolic and Endocrine Disorders'] = df2[metabolic_and_endocrine_disorders_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "neurological_disorders_columns = [\n", + " 'Alzheimer\\'s disease (disorder)',\n", + " 'Brain damage - traumatic',\n", + " 'Chronic intractable migraine without aura',\n", + " 'Chronic low back pain (finding)',\n", + " 'Chronic neck pain (finding)',\n", + " 'Chronic pain',\n", + " 'Chronic paralysis due to lesion of spinal cord',\n", + " 'Chronic sinusitis (disorder)',\n", + " 'Epilepsy',\n", + " 'Familial Alzheimer\\'s disease of early onset (disorder)',\n", + " 'Fibromyalgia (disorder)',\n", + " 'Lupus erythematosus',\n", + " 'Male infertility due to cystic fibrosis (disorder)',\n", + " 'Malignant neoplasm of breast (disorder)',\n", + " 'Malignant tumor of colon',\n", + " 'Seizure disorder',\n", + " 'Sepsis (disorder)',\n", + " 'Sepsis caused by virus (disorder)',\n", + " 'Septic shock (disorder)',\n", + " 'Shock (disorder)',\n", + " 'Sinusitis (disorder)',\n", + " 'Streptococcal sore throat (disorder)',\n", + " 'Suspected COVID-19',\n", + " 'Transformed migraine (disorder)',\n", + " 'Victim of intimate partner abuse (finding)',\n", + " 'Viral sinusitis (disorder)',\n", + " 'Seizure Count Cerebral Cortex Electroencephalogram (EEG)',\n", + " 'Headache (finding)',\n", + " 'Primary fibromyalgia syndrome'\n", + "]\n", + "\n", + "\n", + "df2['Neurological Disorders'] = df2[neurological_disorders_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "orthopedic_injuries_columns = [\n", + " 'Admission to orthopedic department',\n", + " 'Ankle X-ray',\n", + " 'Bone immobilization',\n", + " 'Brain damage - traumatic',\n", + " 'Bullet wound',\n", + " 'Burn injury(morphologic abnormality)',\n", + " 'Chronic kidney disease stage 1 (disorder)',\n", + " 'Clavicle X-ray',\n", + " 'Closed fracture of hip',\n", + " 'Concussion injury of brain',\n", + " 'Concussion with loss of consciousness',\n", + " 'Concussion with no loss of consciousness',\n", + " 'Facial laceration',\n", + " 'Fracture of ankle',\n", + " 'Fracture of clavicle',\n", + " 'Fracture of forearm',\n", + " 'Fracture of rib',\n", + " 'Fracture of the vertebral column with spinal cord injury',\n", + " 'Fracture of vertebral column without spinal cord injury',\n", + " 'Fracture subluxation of wrist',\n", + " 'History of amputation of foot (situation)',\n", + " 'History of lower limb amputation (situation)',\n", + " 'Hypertriglyceridemia (disorder)',\n", + " 'Impacted molars',\n", + " 'Injury of anterior cruciate ligament',\n", + " 'Injury of heart (disorder)',\n", + " 'Injury of kidney (disorder)',\n", + " 'Injury of medial collateral ligament of knee',\n", + " 'Injury of tendon of the rotator cuff of shoulder',\n", + " 'Joint pain (finding)',\n", + " 'Laceration of foot',\n", + " 'Laceration of hand',\n", + " 'Laceration of thigh',\n", + " 'Localized primary osteoarthritis of the hand',\n", + " 'Muscle pain (finding)',\n", + " 'Rupture of appendix',\n", + " 'Rupture of patellar tendon',\n", + " 'Second degree burn',\n", + " 'Sprain of ankle',\n", + " 'Sprain of wrist',\n", + " 'Surgical manipulation of joint of knee',\n", + " 'Surgical manipulation of shoulder joint',\n", + " 'Tear of meniscus of knee',\n", + " 'Total knee replacement',\n", + " 'Whiplash injury to neck',\n", + " 'Third degree burn'\n", + "]\n", + "\n", + "df2[\"Orthopedic Injuries\"] = df2[orthopedic_injuries_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "mental_health_columns = [\n", + " 'Alcoholism',\n", + " 'At risk for suicide (finding)',\n", + " 'Brief general examination (procedure)',\n", + " 'Care regimes assessment (procedure)',\n", + " 'Comprehensive interview and evaluation (procedure)',\n", + " 'Concussion with no loss of consciousness',\n", + " 'Depression screening (procedure)',\n", + " 'Depression screening using Patient Health Questionnaire Nine Item score (procedure)',\n", + " 'Depression screening using Patient Health Questionnaire Two-Item score (procedure)',\n", + " 'Died in hospice (finding)',\n", + " 'Drug overdose',\n", + " 'Evaluation of psychiatric state of patient',\n", + " 'Has a criminal record (finding)',\n", + " 'Homeless (finding)',\n", + " 'Limited social contact (finding)',\n", + " 'Mental health Outpatient Note',\n", + " 'Mental health Telehealth Note',\n", + " 'Mental health screening (procedure)',\n", + " 'Misuses drugs (finding)',\n", + " 'Nausea (finding)',\n", + " 'Not in labor force (finding)',\n", + " 'Part-time employment (finding)',\n", + " 'Passive conjunctival congestion (finding)',\n", + " 'Posttraumatic stress disorder',\n", + " 'Psychiatric follow-up',\n", + " 'Refugee (person)',\n", + " 'Reports of violence in the environment (finding)',\n", + " 'Severe anxiety (panic) (finding',\n", + " 'Social isolation (finding)',\n", + " 'Stress (finding)',\n", + " 'Suicide risk assessment (procedure)',\n", + " 'Victim of intimate partner abuse (finding)',\n", + " 'Attempted suicide - cut/stab',\n", + " 'Attempted suicide - suffocation',\n", + " 'Opioid abuse (disorder)',\n", + " 'Assessment of anxiety (procedure)'\n", + "]\n", + "\n", + "df2['Mental Health'] = df2[mental_health_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "reproductive_and_pregancy_columns = [\n", + " '1 ML medroxyPROGESTERone acetate 150 MG/ML Injection',\n", + " '168 HR Ethinyl Estradiol 0.00146 MG/HR / norelgestromin 0.00625 MG/HR Transdermal System',\n", + " 'Antenatal RhD antibody screening',\n", + " 'Antepartum eclampsia',\n", + " 'Augmentation of labor',\n", + " 'Auscultation of the fetal heart',\n", + " 'Bilateral tubal ligation',\n", + " 'Blighted ovum',\n", + " 'Camila 28 Day Pack',\n", + " 'Counseling for termination of pregnancy',\n", + " 'Cytopathology procedure preparation of smear genital source',\n", + " 'Episiotomy',\n", + " 'Errin 28 Day Pack',\n", + " 'Estrostep Fe 28 Day Pack',\n", + " 'Etonogestrel 68 MG Drug Implant',\n", + " 'Evaluation of uterine fundal height',\n", + " 'Excision of fallopian tube and surgical removal of ectopic pregnancy',\n", + " 'Fetal anatomy study',\n", + " 'Fetus with unknown complication',\n", + " 'Gonorrhea infection test',\n", + " 'Hyperlipidemia',\n", + " 'Induced termination of pregnancy',\n", + " 'Insertion of intrauterine contraceptive device',\n", + " 'Insertion of subcutaneous contraceptive',\n", + " 'Instrumental delivery',\n", + " 'Jolivette 28 Day Pack',\n", + " 'Kyleena 19.5 MG Intrauterine System',\n", + " 'Leronlimab 700 MG Injection',\n", + " 'Levonorgestrel 0.00354 MG/HR Drug Implant',\n", + " 'Levora 0.15/30 28 Day Pack',\n", + " 'Liletta 52 MG Intrauterine System',\n", + " 'Medical induction of labor',\n", + " 'Mestranol / Norethynodrel [Enovid]',\n", + " 'Methotrexate injection into tubal pregnancy',\n", + " 'Mirena 52 MG Intrauterine System',\n", + " 'Miscarriage in first trimester',\n", + " 'Natazia 28 Day Pack',\n", + " 'Norinyl 1+50 28 Day Pack',\n", + " 'NuvaRing 0.12/0.015 MG per 24HR 21 Day Vaginal Ring',\n", + " 'Ortho Tri-Cyclen 28 Day Pack',\n", + " 'Preeclampsia',\n", + " 'Pregnancy termination care',\n", + " 'Premature birth of newborn',\n", + " 'Removal of intrauterine device',\n", + " 'Removal of subcutaneous contraceptive',\n", + " 'Replacement of contraceptive intrauterine device',\n", + " 'RhD passive immunization',\n", + " 'Screening for chromosomal aneuploidy in prenatal amniotic fluid',\n", + " 'Spontaneous breech delivery',\n", + " 'Standard pregnancy test',\n", + " 'Tubal pregnancy',\n", + " 'Ultrasonography of abdomen right upper quadrant and epigastrium',\n", + " 'Ultrasonography of bilateral breasts (procedure)',\n", + " 'Ultrasound scan for fetal viability',\n", + " 'Vaccination for diphtheria pertussis and tetanus',\n", + " 'Vasectomy' \n", + "]\n", + "\n", + "df2['Reproductive and Pregnancy'] = df2[reproductive_and_pregancy_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "pain_relievers_and_analesics_columns = [\n", + " '10 ML Alfentanil 0.5 MG/ML Injection',\n", + " '10 ML Fentanyl 0.05 MG/ML Injection',\n", + " '12 HR Hydrocodone Bitartrate 10 MG Extended Release Oral Capsule',\n", + " '5 ML SUFentanil 0.05 MG/ML Injection',\n", + " '72 HR Fentanyl 0.025 MG/HR Transdermal System',\n", + " 'Abuse-Deterrent 12 HR Oxycodone Hydrochloride 10 MG Extended Release Oral Tablet [Oxycontin]',\n", + " 'Abuse-Deterrent 12 HR Oxycodone Hydrochloride 15 MG Extended Release Oral Tablet',\n", + " 'Acetaminophen 325 MG / oxyCODONE Hydrochloride 2.5 MG Oral Tablet',\n", + " 'Acetaminophen 325 MG / oxyCODONE Hydrochloride 5 MG Oral Tablet',\n", + " 'Acetaminophen 500 MG Oral Tablet',\n", + " 'Acetaminophen 300 MG / Hydrocodone Bitartrate 5 MG Oral Tablet',\n", + " 'Acetaminophen 325 MG / HYDROcodone Bitartrate 7.5 MG Oral Tablet',\n", + " 'Acetaminophen 325 MG / Oxycodone Hydrochloride 10 MG Oral Tablet [Percocet]',\n", + " 'Acetaminophen 325 MG Oral Tablet',\n", + " 'Acetaminophen/Hydrocodone',\n", + " 'Aspirin',\n", + " 'Aspirin 81 MG Oral Tablet',\n", + " 'Carbamazepine[Tegretol]',\n", + " 'Chlorpheniramine Maleate 4 MG Oral Tablet',\n", + " 'Clopidogrel 75 MG Oral Tablet',\n", + " 'Colchicine 0.6 MG Oral Tablet',\n", + " 'Cyclophosphamide 1000 MG Injection',\n", + " 'Diazepam 5 MG Oral Tablet',\n", + " 'Diazepam 5 MG/ML Injectable Solution',\n", + " 'Doxycycline Monohydrate 100 MG Oral Tablet',\n", + " 'Ibuprofen',\n", + " 'Ibuprofen 200 MG Oral Tablet',\n", + " 'Ibuprofen 400 MG Oral Tablet [Ibu]',\n", + " 'Lorazepam 2 MG/ML Injectable Solution',\n", + " 'Meperidine Hydrochloride 50 MG Oral Tablet',\n", + " 'Muscle pain (finding)',\n", + " 'Naproxen 500 MG Oral Tablet',\n", + " 'Naproxen sodium 220 MG Oral Tablet',\n", + " 'Nitroglycerin 0.4 MG/ACTUAT Mucosal Spray',\n", + " 'Phenazopyridine hydrochloride 100 MG Oral Tablet',\n", + " 'Sulfamethoxazole / Trimethoprim',\n", + " 'buprenorphine 2 MG / naloxone 0.5 MG Sublingual Tablet',\n", + " 'diphenhydrAMINE Hydrochloride 25 MG Oral Tablet',\n", + " 'duloxetine 20 MG Delayed Release Oral Capsule',\n", + " 'methadone hydrochloride 10 MG Oral Tablet',\n", + " 'tramadol hydrochloride 50 MG Oral Tablet',\n", + " 'clonazePAM 0.25 MG Oral Tablet',\n", + " 'Midazolam 1 MG/ML Injectable Solution',\n", + " 'Rocuronium bromide 10 MG/ML Injectable Solution',\n", + " 'Epidural anesthesia',\n", + "]\n", + "\n", + "df2['Pain Relievers and Analesics'] = df2[pain_relievers_and_analesics_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "cardiovascular_and_blood_pressure_medications_columns = [\n", + " '0.3 ML Enoxaparin sodium 100 MG/ML Prefilled Syringe',\n", + " '0.4 ML Enoxaparin sodium 100 MG/ML Prefilled Syringe',\n", + " '1 ML Enoxaparin sodium 150 MG/ML Prefilled Syringe',\n", + " '1 ML heparin sodium porcine 5000 UNT/ML Injection',\n", + " '3 ML Amiodarone hydrocholoride 50 MG/ML Prefilled Syringe',\n", + " '4 ML norepinephrine 1 MG/ML Injection',\n", + " 'Acute deep venous thrombosis (disorder)',\n", + " 'Acute pulmonary embolism (disorder)',\n", + " 'Alteplase 100 MG Injection',\n", + " 'Assessment using New York Heart Association Classification (procedure)',\n", + " 'Atorvastatin 80 MG Oral Tablet',\n", + " 'Atropine Sulfate 1 MG/ML Injectable Solution',\n", + " 'Captopril 25 MG Oral Tablet',\n", + " 'Cardiac Arrest',\n", + " 'Cardiovascular stress testing (procedure)',\n", + " 'Catheter ablation of tissue of heart',\n", + " 'Coronary artery bypass grafting',\n", + " 'Digoxin 0.125 MG Oral Tablet',\n", + " 'Echocardiography (procedure)',\n", + " 'Electrical cardioversion',\n", + " 'Electrocardiographic procedure',\n", + " 'Furosemide 40 MG Oral Tablet',\n", + " 'History of myocardial infarction (situation)',\n", + " 'Hydrochlorothiazide 25 MG Oral Tablet',\n", + " 'Implantation of left ventricular assist device (procedure)',\n", + " 'Insertion of biventricular implantable cardioverter defibrillator',\n", + " 'Lisinopril',\n", + " 'Myocardial Infarction',\n", + " 'Nitrofurantoin 5 MG/ML Oral Suspension',\n", + " 'Peripheral blood smear interpretation',\n", + " 'Referral to hypertension clinic',\n", + " 'Shock (disorder)',\n", + " 'Stroke',\n", + " 'Transplantation of heart (procedure)',\n", + " 'Verapamil Hydrochloride 40 MG',\n", + " 'Warfarin Sodium 5 MG Oral Tablet',\n", + " 'carvedilol 25 MG Oral Tablet',\n", + " 'lisinopril 10 MG Oral Tablet',\n", + " 'lisinopril 20 MG Oral Tablet',\n", + " 'losartan potassium 25 MG Oral Tablet',\n", + " 'losartan potassium 50 MG Oral Tablet',\n", + " 'sacubitril 97 MG / valsartan 103 MG Oral Tablet',\n", + " 'remifentanil 2 MG Injection',\n", + " 'pregabalin 100 MG Oral Capsule'\n", + "]\n", + "\n", + "df2['Cardiovascular and Blood Pressure Medications'] = df2[cardiovascular_and_blood_pressure_medications_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "injection_medications_columns = [\n", + " '10 ML Doxorubicin Hydrochloride 2 MG/ML Injection',\n", + " '10 ML oxaliplatin 5 MG/ML Injection',\n", + " '1 ML DOCEtaxel 20 MG/ML Injection',\n", + " '1 ML Epinephrine 1 MG/ML Injection',\n", + " '1 ML Morphine Sulfate 5 MG/ML Injection',\n", + " '1 ML Vasopressin (USP) 20 UNT/ML Injection',\n", + " '10 ML Fluorouracil 50 MG/ML Injection',\n", + " '10 ML Pamidronate Disodium 3 MG/ML Injection',\n", + " '100 ML Epirubicin Hydrochloride 2 MG/ML Injection',\n", + " '100 ML Propofol 10 MG/ML Injection',\n", + " '100 ML zoledronic acid 0.04 MG/ML Injection',\n", + " '150 ML vancomycin 5 MG/ML Injection',\n", + " '2 ML Ondansetron 2 MG/ML Injection',\n", + " '20 ML tocilizumab 20 MG/ML Injection',\n", + " '5 ML hyaluronidase-oysk 2000 UNT/ML / trastuzumab 120 MG/ML Injection',\n", + " 'pneumococcal polysaccharide vaccine 23 valent',\n", + " 'remdesivir 100 MG Injection',\n", + " 'zoster',\n", + " 'Aztreonam 2000 MG Injection',\n", + " 'cefdinir', \n", + " 'Cefdinir',\n", + " 'doxycycline hyclate 100 MG',\n", + " 'Ampicillin 100 MG/ML Injectable Solution',\n", + " 'Penicillin G 375 MG/ML Injectable Solution',\n", + " 'Penicillin V',\n", + " 'Paclitaxel 100 MG Injection',\n", + " 'Piperacillin 4000 MG / tazobactam 500 MG Injection',\n", + " 'Leucovorin 100 MG Injection',\n", + " 'Influenza seasonal injectable preservative free',\n", + " 'Syphilis infection test',\n", + " 'Skin test for tuberculosis',\n", + " 'Urine culture'\n", + "]\n", + "\n", + "\n", + "df2['Injection Medications'] = df2[injection_medications_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "oral_medications_columns = [\n", + " '12 HR Cefaclor 500 MG Extended Release Oral Tablet',\n", + " '24 HR Donepezil hydrochloride 10 MG / Memantine hydrochloride 28 MG Extended Release Oral Capsule',\n", + " '24 HR Metformin hydrochloride 500 MG Extended Release Oral Tablet',\n", + " 'Acetaminophen 300 MG / Codeine Phosphate 15 MG Oral Tablet',\n", + " 'Acetaminophen 325 MG Oral Tablet [Tylenol]',\n", + " 'Alendronic acid 10 MG Oral Tablet',\n", + " 'Allopurinol 100 MG Oral Tablet',\n", + " 'Amlodipine 5 MG Oral Tablet',\n", + " 'Amoxicillin 250 MG / Clavulanate 125 MG Oral Tablet',\n", + " 'Amoxicillin 250 MG Oral Capsule',\n", + " 'Aspirin 81 MG Oral Tablet',\n", + " 'Astemizole 10 MG Oral Tablet',\n", + " 'Atorvastatin 80 MG Oral Tablet',\n", + " 'Azithromycin 250 MG Oral Tablet',\n", + " 'Azithromycin 250mg',\n", + " 'Cefuroxime 250 MG Oral Tablet',\n", + " 'Chlorpheniramine Maleate 4 MG Oral Tablet',\n", + " 'Clopidogrel 75 MG Oral Tablet',\n", + " 'Colchicine 0.6 MG Oral Tablet',\n", + " 'Diazepam 5 MG Oral Tablet',\n", + " 'Digoxin 0.125 MG Oral Tablet',\n", + " 'Donepezil hydrochloride 10 MG Oral Tablet',\n", + " 'Donepezil hydrochloride 23 MG Oral Tablet',\n", + " 'Doxycycline Monohydrate 100 MG Oral Tablet',\n", + " 'Fexofenadine hydrochloride 60 MG Oral Tablet',\n", + " 'Furosemide 40 MG Oral Tablet',\n", + " 'Galantamine 4 MG Oral Tablet',\n", + " 'Hydrochlorothiazide 25 MG Oral Tablet',\n", + " 'Levothyroxine Sodium 0.075 MG Oral Tablet',\n", + " 'Loratadine 10 MG Oral Tablet',\n", + " 'Methotrexate 2.5 MG Oral Tablet',\n", + " 'Milnacipran hydrochloride 100 MG Oral Tablet',\n", + " 'Nitrofurantoin 5 MG/ML Oral Suspension',\n", + " 'Penicillin V Potassium 500 MG Oral Tablet',\n", + " 'Phenazopyridine hydrochloride 100 MG Oral Tablet',\n", + " 'Sertraline 100 MG Oral Tablet',\n", + " 'Simvastatin 10 MG Oral Tablet',\n", + " 'Simvastatin 20 MG Oral Tablet',\n", + " 'Tacrine 10 MG Oral Capsule',\n", + " 'Tamoxifen 10 MG Oral Tablet',\n", + " 'Terfenadine 60 MG Oral Tablet',\n", + " 'Verapamil Hydrochloride 40 MG',\n", + " 'Verzenio 100 MG Oral Tablet',\n", + " 'Warfarin Sodium 5 MG Oral Tablet',\n", + " 'palbociclib 100 MG Oral Capsule',\n", + " 'predniSONE 20 MG Oral Tablet',\n", + " 'ribociclib 200 MG Oral Tablet',\n", + " 'neratinib 40 MG Oral Tablet',\n", + " 'Hydroxychloroquine Sulfate 200 MG Oral Tablet',\n", + " 'chloroquine phosphate 500 MG Oral Tablet',\n", + " 'Naltrexone hydrochloride 50 MG Oral Tablet',\n", + " 'lapatinib 250 MG Oral Tablet',\n", + " 'cetirizine hydrochloride 10 MG Oral Tablet',\n", + " 'cycloSPORINE modified 100 MG Oral Capsule',\n", + " 'letrozole 2.5 MG Oral Tablet',\n", + " 'exemestane 25 MG Oral Tablet',\n", + " 'ferrous sulfate 325 MG Oral Tablet'\n", + " \n", + "]\n", + "\n", + "df2['Oral Medications'] = df2[oral_medications_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "other_medications_columns = [\n", + " '0.25 ML Leuprolide Acetate 30 MG/ML Prefilled Syringe',\n", + " '1 ML Epoetin Alfa 4000 UNT/ML Injection [Epogen]',\n", + " '1 ML denosumab 60 MG/ML Prefilled Syringe',\n", + " '10 ML Furosemide 10 MG/ML Injection',\n", + " '3 ML liraglutide 6 MG/ML Pen Injector',\n", + " '5 ML fulvestrant 50 MG/ML Prefilled Syringe',\n", + " '12 HR Cefaclor 500 MG Extended Release Oral Tablet',\n", + " '120 ACTUAT Fluticasone propionate 0.044 MG/ACTUAT Metered Dose Inhaler',\n", + " '60 ACTUAT Fluticasone propionate 0.25 MG/ACTUAT / salmeterol 0.05 MG/ACTUAT Dry Powder Inhaler',\n", + " 'Acetaminophen 21.7 MG/ML / Dextromethorphan Hydrobromide 1 MG/ML / doxylamine succinate 0.417 MG/ML Oral Solution',\n", + " 'Chlamydia antigen test',\n", + " 'Hepatitis B Surface Antigen Measurement',\n", + " 'Hepatitis C antibody test',\n", + " 'Human immunodeficiency virus antigen test',\n", + " 'Insulin Lispro 100 UNT/ML Injectable Solution [Humalog]',\n", + " 'Jolivette 28 Day Pack',\n", + " 'Measurement of Varicella-zoster virus antibody',\n", + " 'Memantine hydrochloride 2 MG/ML Oral Solution',\n", + " 'NDA020503 200 ACTUAT Albuterol 0.09 MG/ACTUAT Metered Dose Inhaler',\n", + " 'NDA020800 0.3 ML Epinephrine 1 MG/ML Auto-Injector',\n", + " 'NITROFURANTOIN MACROCRYSTALS 50 MG Oral Capsule',\n", + " 'Ortho Tri-Cyclen 28 Day Pack',\n", + " 'Pneumococcal conjugate PCV 13',\n", + " 'Pulmozyme (Dornase Alfa)',\n", + " 'SARS-COV-2 (COVID-19) vaccine mRNA spike protein LNP preservative free 100 mcg/0.5mL dose',\n", + " 'SARS-COV-2 (COVID-19) vaccine mRNA spike protein LNP preservative free 30 mcg/0.3mL dose',\n", + " 'SARS-COV-2 (COVID-19) vaccine vector non-replicating recombinant spike protein-Ad26 preservative free 0.5 mL',\n", + " 'Seasonique 91 Day Pack',\n", + " 'Td (adult) preservative free',\n", + " 'Trinessa 28 Day Pack',\n", + " 'Vaccination for diphtheria pertussis and tetanus',\n", + " 'Vitamin B 12 5 MG/ML Injectable Solution',\n", + " 'Vomiting symptom (finding)',\n", + " 'Yaz 28 Day Pack',\n", + " 'ado-trastuzumab emtansine 100 MG Injection',\n", + " 'albuterol 5 MG/ML Inhalation Solution',\n", + " 'amLODIPine 2.5 MG Oral Tablet',\n", + " 'anastrozole 1 MG Oral Tablet',\n", + " 'baricitinib 2 MG Oral Tablet',\n", + " 'buprenorphine 2 MG / naloxone 0.5 MG Sublingual Tablet',\n", + " 'carvedilol 25 MG Oral Tablet',\n", + " 'sevoflurane 1000 MG/ML Inhalant Solution',\n", + " 'Latex (substance)',\n", + " 'desflurane 1000 MG/ML Inhalation Solution',\n", + " 'Isoflurane 999 MG/ML Inhalant Solution',\n", + " 'Hydrocortisone 10 MG/ML Topical Cream',\n", + " 'Lenzilumab 200 MG IV',\n", + " 'remifentanil 2 MG Injection',\n", + " 'Carboplatin 10 MG/ML Injectable Solution',\n", + " 'chloroquine phosphate 500 MG Oral Tablet',\n", + " 'Naltrexone hydrochloride 50 MG Oral Tablet',\n", + " 'lapatinib 250 MG Oral Tablet',\n", + " 'Sodium Chloride 9 MG/ML Injectable Solution',\n", + " 'insulin human isophane 70 UNT/ML / Regular Insulin Human 30 UNT/ML Injectable Suspension [Humulin]'\n", + "]\n", + "\n", + "\n", + "df2['Other Medications'] = df2[other_medications_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "therapies_and_regimes_columns = [\n", + " '24hr nicotine transdermal patch',\n", + " 'Assessment of health and social care needs (procedure)',\n", + " 'Assessment of substance use (procedure)',\n", + " 'Assessment using Alcohol Use Disorders Identification Test - Consumption (procedure)',\n", + " 'Assessment using Morse Fall Scale (procedure)',\n", + " 'Cognitive and behavioral therapy (regime/therapy)',\n", + " 'Combined chemotherapy and radiation therapy (procedure)',\n", + " 'Comprehensive interview and evaluation (procedure)',\n", + " 'Construction of diverting colostomy',\n", + " 'Controlled ventilation procedure and therapy initiation and management (procedure)',\n", + " 'Coordination of care plan (procedure)',\n", + " 'Home health aide service (regime/therapy)',\n", + " 'Hospice care (regime/therapy)',\n", + " 'Interstitial brachytherapy (procedure)',\n", + " 'Intracavitary brachytherapy (procedure)',\n", + " 'Monitoring of patient (regime/therapy)',\n", + " 'Movement therapy (regime/therapy)',\n", + " 'Nursing care/supplementary surveillance (regime/therapy)',\n", + " 'Occupational therapy (regime/therapy)',\n", + " 'Physical examination',\n", + " 'Physical therapy procedure (regime/therapy)',\n", + " 'Professional / ancillary services care (regime/therapy)',\n", + " 'Psychosocial care (regime/therapy)',\n", + " 'Pulmonary rehabilitation (regime/therapy)',\n", + " 'Radiation oncology AND/OR radiotherapy (procedure)',\n", + " 'Radiation therapy care (regime/therapy)',\n", + " 'Referral to home health care service (procedure)',\n", + " 'Referral to hypertension clinic',\n", + " 'Social case work (regime/therapy)',\n", + " 'Speech and language therapy regime (regime/therapy',\n", + " 'Subcutaneous immunotherapy',\n", + " 'Teleradiotherapy procedure (procedure)',\n", + " 'Transplant of lung (procedure)',\n", + " 'Transplantation of heart (procedure)',\n", + " 'Weaning from mechanically assisted ventilation (procedure)',\n", + " 'Microbial culture (procedure)',\n", + " 'Chemotherapy (procedure)'\n", + "]\n", + "\n", + "\n", + "df2['Therapies and Regimes'] = df2[therapies_and_regimes_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "diagnostic_procedures_columns = [\n", + " 'Biopsy of breast (procedure)',\n", + " 'Biopsy of colon',\n", + " 'Biopsy of prostate',\n", + " 'Blood typing RH typing',\n", + " 'Bone density scan (procedure)',\n", + " 'Chlamydia antigen test',\n", + " 'Clavicle X-ray',\n", + " 'Colonoscopy',\n", + " 'Digital examination of rectum',\n", + " 'Echocardiography (procedure)',\n", + " 'Electrocardiographic procedure',\n", + " 'Human epidermal growth factor receptor 2 gene detection by fluorescence in situ hybridization (procedure)',\n", + " 'Human epidermal growth factor receptor 2 gene detection by immunohistochemistry (procedure)',\n", + " 'Human immunodeficiency virus antigen test',\n", + " 'Initial patient assessment (procedure)',\n", + " 'Knee X-ray',\n", + " 'Magnetic resonance imaging of breast (procedure)',\n", + " 'Mammogram - symptomatic (procedure)',\n", + " 'Mammography (procedure)',\n", + " 'Manual pelvic examination (procedure)',\n", + " 'Measurement of Varicella-zoster virus antibody',\n", + " 'Measurement of respiratory function (procedure)',\n", + " 'Nasal sinus endoscopy (procedure)',\n", + " 'Pelvis X-ray',\n", + " 'Plain chest X-ray (procedure)',\n", + " 'Screening for domestic abuse (procedure)',\n", + " 'Screening for drug abuse (procedure)',\n", + " 'Screening for occult blood in feces (procedure)',\n", + " 'Screening mammography (procedure)',\n", + " 'Sentinel lymph node biopsy (procedure)',\n", + " 'Spirometry (procedure)',\n", + " 'Throat culture (procedure)',\n", + " 'Upper arm X-ray',\n", + " 'X-ray or wrist',\n", + " 'Seizure Count Cerebral Cortex Electroencephalogram (EEG)',\n", + " 'Allergy screening test',\n", + " 'Alpha-fetoprotein test',\n", + " 'Bilirubin.total [Presence] in Urine by Test strip',\n", + " 'Urine screening for glucose',\n", + " 'Urine screening test for diabetes',\n", + " 'Urine protein test',\n", + " 'Hemoglobin / Hematocrit / Platelet count',\n", + " 'Assessment of anxiety (procedure)',\n", + " 'Urine culture'\n", + "]\n", + "\n", + "\n", + "df2['Diagnostic Procedures'] = df2[diagnostic_procedures_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "surgerical_interventions_columns = [\n", + " 'Admission to burn unit',\n", + " 'Admission to long stay hospital',\n", + " 'Admission to neurosurgical department',\n", + " 'Admission to trauma surgery department',\n", + " 'Admit to ICU (procedure)',\n", + " 'Amputation of right foot',\n", + " 'Amputation of right leg',\n", + " 'Appendectomy',\n", + " 'Artificial respiration (procedure)',\n", + " 'Brachytherapy of breast (procedure)',\n", + " 'Catheter ablation of tissue of heart',\n", + " 'Coronary artery bypass grafting',\n", + " 'Excision of axillary lymph node (procedure)',\n", + " 'Excision of breast tissue (procedure)',\n", + " 'Excision of sentinel lymph node (procedure)',\n", + " 'Extraction of wisdom tooth',\n", + " 'Implantation of left ventricular assist device (procedure)',\n", + " 'Induced termination of pregnancy',\n", + " 'Insertion of biventricular implantable cardioverter defibrillator',\n", + " 'Insertion of endotracheal tube (procedure)',\n", + " 'Instrumental delivery',\n", + " 'Intubation',\n", + " 'Laparoscopic Removal of Gall Bladder',\n", + " 'Lumpectomy of breast (procedure)',\n", + " 'Lung volume reduction surgery (procedure)',\n", + " 'Open Removal of Gall Bladder',\n", + " 'Partial resection of colon',\n", + " 'Percutaneous coronary intervention',\n", + " 'Percutaneous mechanical thrombectomy of portal vein using fluoroscopic guidance',\n", + " 'Prostatectomy',\n", + " 'Rectal polypectomy',\n", + " 'Removal of endotracheal tube (procedure)',\n", + " 'Removal of subcutaneous contraceptive',\n", + " 'Surgical manipulation of joint of knee',\n", + " 'Surgical manipulation of shoulder joint',\n", + " 'Suture open wound',\n", + " 'Tear of meniscus of knee',\n", + " 'Transplantation of heart (procedure)'\n", + "]\n", + "df2['Surgical Interventions'] = df2[surgerical_interventions_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "patient_care_management_columns = [\n", + " 'Assessment of health and social care needs (procedure)',\n", + " 'Bleeding from anus',\n", + " 'Bullet wound',\n", + " 'Chronic low back pain (finding)',\n", + " 'Contact dermatitis',\n", + " 'Cystitis',\n", + " 'Diarrhea symptom (finding)',\n", + " 'Escherichia coli urinary tract infection',\n", + " 'Evaluation of psychiatric state of patient',\n", + " 'Facial laceration',\n", + " 'First degree burn',\n", + " 'Heart failure education (procedure)',\n", + " 'Hemodialysis (procedure)',\n", + " 'Hep A adult',\n", + " 'History AND physical examination (procedure)',\n", + " 'History of amputation of foot (situation)',\n", + " 'History of appendectomy',\n", + " 'History of cardiac arrest (situation)',\n", + " 'History of lower limb amputation (situation)',\n", + " 'History of single seizure (situation)',\n", + " 'Hospital admission short-term 24 hours',\n", + " 'Information gathering (procedure)',\n", + " 'Injection of tetanus antitoxin',\n", + " 'Intramuscular injection',\n", + " 'Intravenous blood transfusion of packed cells (procedure)',\n", + " 'Intravenous injection (procedure)',\n", + " 'Laceration of foot',\n", + " 'Laceration of forearm',\n", + " 'Laceration of hand',\n", + " 'Laceration of thigh',\n", + " 'Medication Reconciliation (procedure)',\n", + " 'Movement therapy (regime/therapy)',\n", + " 'Notifications (procedure)',\n", + " 'Oxygen administration by mask (procedure)',\n", + " 'Patient discharge (procedure)',\n", + " 'Placing subject in prone position (procedure)',\n", + " 'Postoperative procedure education (procedure)',\n", + " 'Pre-discharge assessment (procedure)',\n", + " 'Radiation oncology AND/OR radiotherapy (procedure)',\n", + " 'Referral to home health care service (procedure)',\n", + " 'Referral to hypertension clinic',\n", + " 'Renal dialysis (procedure)',\n", + " 'Resuscitation using intravenous fluid (procedure)',\n", + " 'Review of systems (procedure)',\n", + " 'Rubella screening',\n", + " 'Screening mammography (procedure)',\n", + " 'Subcutaneous immunotherapy',\n", + " 'Teleradiotherapy procedure (procedure)',\n", + " 'Transfer to stepdown unit (procedure)',\n", + " 'Transfusion of plasma (procedure)',\n", + " 'Weaning from mechanically assisted ventilation (procedure)',\n", + " 'piperacillin 2000 MG / tazobactam 250 MG Injection',\n", + " 'vancomycin 1000 MG Injection',\n", + " 'Recurrent urinary tract infection',\n", + " 'Acquired coagulation disorder (disorder)',\n", + " 'Primary malignant neoplasm of colon',\n", + " 'Pyelonephritis',\n", + " 'Chill (finding)',\n", + " 'Acute Cholecystitis',\n", + " 'Cholelithiasis',\n", + " 'Appendicitis',\n", + " 'Metastasis from malignant tumor of prostate (disorder)',\n", + " 'Overlapping malignant neoplasm of colon',\n", + " 'Polyp of colon',\n", + " 'Neoplasm of prostate',\n", + " 'Carcinoma in situ of prostate (disorder)',\n", + " 'Recurrent rectal polyp',\n", + " 'Discharge from skilled nursing facility (procedure)',\n", + " 'Certification procedure (procedure)',\n", + " 'Development of individualized plan of care (procedure)'\n", + "]\n", + "\n", + "df2['Patient Care Management'] = df2[patient_care_management_columns].sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "categories = ['Respiratory Disorders', 'Heart and Cardiovascular Diseases', 'Metabolic and Endocrine Disorders', 'Neurological Disorders', 'Orthopedic Injuries', 'Mental Health', 'Reproductive and Pregnancy', 'Pain Relievers and Analesics', 'Cardiovascular and Blood Pressure Medications', 'Injection Medications', 'Oral Medications', 'Other Medications', 'Therapies and Regimes', 'Diagnostic Procedures', 'Surgical Interventions', 'Patient Care Management']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Type of these column is object, we will convert them to int." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column: Facial laceration\n", + "Data Type: object\n", + "Column: Norinyl 1+50 28 Day Pack\n", + "Data Type: object\n", + "Column: Intubation\n", + "Data Type: object\n", + "Column: Amlodipine 5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: anastrozole 1 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Take blood sample\n", + "Data Type: float64\n", + "Column: Lack of access to transportation (finding)\n", + "Data Type: object\n", + "Column: Incision of trachea (procedure)\n", + "Data Type: float64\n", + "Column: Alteplase 100 MG Injection\n", + "Data Type: object\n", + "Column: Referral to hypertension clinic\n", + "Data Type: object\n", + "Column: 168 HR Ethinyl Estradiol 0.00146 MG/HR / norelgestromin 0.00625 MG/HR Transdermal System\n", + "Data Type: object\n", + "Column: ferrous sulfate 325 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Certification procedure (procedure)\n", + "Data Type: object\n", + "Column: Pulmonary rehabilitation (regime/therapy)\n", + "Data Type: object\n", + "Column: Aspirin\n", + "Data Type: object\n", + "Column: History of amputation of foot (situation)\n", + "Data Type: object\n", + "Column: Limited social contact (finding)\n", + "Data Type: object\n", + "Column: Azithromycin 250mg\n", + "Data Type: object\n", + "Column: Antepartum eclampsia\n", + "Data Type: object\n", + "Column: Hepatitis B Surface Antigen Measurement\n", + "Data Type: object\n", + "Column: Jolivette 28 Day Pack\n", + "Data Type: object\n", + "Column: Asthma\n", + "Data Type: object\n", + "Column: Died in hospice (finding)\n", + "Data Type: object\n", + "Column: Levonorgestrel 0.00354 MG/HR Drug Implant\n", + "Data Type: object\n", + "Column: Appearance of Urine\n", + "Data Type: object\n", + "Column: Rupture of patellar tendon\n", + "Data Type: object\n", + "Column: Cesarean section\n", + "Data Type: object\n", + "Column: Cystitis\n", + "Data Type: object\n", + "Column: Rupture of appendix\n", + "Data Type: object\n", + "Column: Skin test for tuberculosis\n", + "Data Type: object\n", + "Column: pregabalin 100 MG Oral Capsule\n", + "Data Type: object\n", + "Column: Fracture of rib\n", + "Data Type: object\n", + "Column: Bleeding from anus\n", + "Data Type: object\n", + "Column: cefdinir\n", + "Data Type: object\n", + "Column: Egg white IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Chronic kidney disease stage 1 (disorder)\n", + "Data Type: object\n", + "Column: Shock (disorder)\n", + "Data Type: object\n", + "Column: Epidural anesthesia\n", + "Data Type: object\n", + "Column: RhD passive immunization\n", + "Data Type: object\n", + "Column: Urine culture\n", + "Data Type: object\n", + "Column: Stress (finding)\n", + "Data Type: object\n", + "Column: COVID-19\n", + "Data Type: object\n", + "Column: Bone density scan (procedure)\n", + "Data Type: object\n", + "Column: Alpha-fetoprotein test\n", + "Data Type: object\n", + "Column: ribociclib 200 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Coordination of care plan (procedure)\n", + "Data Type: object\n", + "Column: Pneumococcal conjugate PCV 13\n", + "Data Type: object\n", + "Column: Face mask (physical object)\n", + "Data Type: object\n", + "Column: Prostatectomy\n", + "Data Type: object\n", + "Column: Information gathering (procedure)\n", + "Data Type: object\n", + "Column: Microalbumin Creatinine Ratio\n", + "Data Type: object\n", + "Column: Acetaminophen 325 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Protracted diarrhea\n", + "Data Type: object\n", + "Column: Functional capacity NYHA\n", + "Data Type: object\n", + "Column: Vaccination for diphtheria pertussis and tetanus\n", + "Data Type: object\n", + "Column: Methotrexate injection into tubal pregnancy\n", + "Data Type: object\n", + "Column: Hydrocortisone 10 MG/ML Topical Cream\n", + "Data Type: object\n", + "Column: doxycycline hyclate 100 MG\n", + "Data Type: object\n", + "Column: White Blood Cell (Elevated)\n", + "Data Type: float64\n", + "Column: Furosemide 40 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Human epidermal growth factor receptor 2 gene detection by immunohistochemistry (procedure)\n", + "Data Type: object\n", + "Column: Lorazepam 2 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Intravenous antibiotic therapy\n", + "Data Type: float64\n", + "Column: Color of Urine\n", + "Data Type: object\n", + "Column: lisinopril 20 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Osteoarthritis of knee\n", + "Data Type: object\n", + "Column: Alcoholism\n", + "Data Type: object\n", + "Column: Intravenous blood transfusion of packed cells (procedure)\n", + "Data Type: object\n", + "Column: Teleradiotherapy procedure (procedure)\n", + "Data Type: object\n", + "Column: Triglycerides\n", + "Data Type: object\n", + "Column: lisinopril 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Hospital admission short-term 24 hours\n", + "Data Type: object\n", + "Column: Fracture of vertebral column without spinal cord injury\n", + "Data Type: object\n", + "Column: Body Mass Index\n", + "Data Type: object\n", + "Column: Objective assessment of cardiovascular disease NYHA\n", + "Data Type: object\n", + "Column: Honey bee IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Diarrhea symptom (finding)\n", + "Data Type: object\n", + "Column: Cardiac Arrest\n", + "Data Type: object\n", + "Column: Laceration of foot\n", + "Data Type: object\n", + "Column: Admission to long stay hospital\n", + "Data Type: object\n", + "Column: Biopsy of prostate\n", + "Data Type: object\n", + "Column: Lumpectomy of breast (procedure)\n", + "Data Type: object\n", + "Column: Assessment of substance use (procedure)\n", + "Data Type: object\n", + "Column: Grass pollen (substance)\n", + "Data Type: object\n", + "Column: Glucose [Mass/volume] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Sputum Culture\n", + "Data Type: float64\n", + "Column: Spirometry (procedure)\n", + "Data Type: object\n", + "Column: Pregnancy termination care\n", + "Data Type: object\n", + "Column: Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Subcutaneous immunotherapy\n", + "Data Type: object\n", + "Column: History of myocardial infarction (situation)\n", + "Data Type: object\n", + "Column: Controlled ventilation procedure and therapy initiation and management (procedure)\n", + "Data Type: object\n", + "Column: Platelets [#/volume] in Blood by Automated count\n", + "Data Type: object\n", + "Column: X-ray or wrist\n", + "Data Type: object\n", + "Column: Bee venom (substance)\n", + "Data Type: float64\n", + "Column: Urine screening for glucose\n", + "Data Type: object\n", + "Column: History of single seizure (situation)\n", + "Data Type: object\n", + "Column: Burn injury(morphologic abnormality)\n", + "Data Type: object\n", + "Column: Nasal congestion (finding)\n", + "Data Type: object\n", + "Column: Sinusitis (disorder)\n", + "Data Type: object\n", + "Column: Abuse Status [OMAHA]\n", + "Data Type: object\n", + "Column: Alzheimer's disease (disorder)\n", + "Data Type: object\n", + "Column: Ultrasound scan for fetal viability\n", + "Data Type: object\n", + "Column: Diazepam 5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Animal dander (substance)\n", + "Data Type: object\n", + "Column: Laceration of thigh\n", + "Data Type: object\n", + "Column: Cyclophosphamide 1000 MG Injection\n", + "Data Type: object\n", + "Column: Cladosporium herbarum IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Blighted ovum\n", + "Data Type: object\n", + "Column: Etonogestrel 68 MG Drug Implant\n", + "Data Type: object\n", + "Column: Osteoporosis (disorder)\n", + "Data Type: object\n", + "Column: Patient discharge (procedure)\n", + "Data Type: object\n", + "Column: Sprain of ankle\n", + "Data Type: object\n", + "Column: sevoflurane 1000 MG/ML Inhalant Solution\n", + "Data Type: object\n", + "Column: sacubitril 97 MG / valsartan 103 MG Oral Tablet\n", + "Data Type: object\n", + "Column: NuvaRing 0.12/0.015 MG per 24HR 21 Day Vaginal Ring\n", + "Data Type: object\n", + "Column: Chronic neck pain (finding)\n", + "Data Type: object\n", + "Column: Ibuprofen\n", + "Data Type: object\n", + "Column: Viral sinusitis (disorder)\n", + "Data Type: object\n", + "Column: Placing subject in prone position (procedure)\n", + "Data Type: object\n", + "Column: 1 ML Vasopressin (USP) 20 UNT/ML Injection\n", + "Data Type: object\n", + "Column: Cefdinir\n", + "Data Type: object\n", + "Column: Naproxen 500 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Respiratory distress (finding)\n", + "Data Type: object\n", + "Column: Stage group.clinical Cancer\n", + "Data Type: object\n", + "Column: Contact dermatitis\n", + "Data Type: object\n", + "Column: 72 HR Fentanyl 0.025 MG/HR Transdermal System\n", + "Data Type: object\n", + "Column: Brain damage - traumatic\n", + "Data Type: object\n", + "Column: Kyleena 19.5 MG Intrauterine System\n", + "Data Type: object\n", + "Column: Common Ragweed IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Fracture subluxation of wrist\n", + "Data Type: object\n", + "Column: Iron binding capacity [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Measurement of respiratory function (procedure)\n", + "Data Type: object\n", + "Column: Simvastatin 20 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Injection of tetanus antitoxin\n", + "Data Type: object\n", + "Column: High Density Lipoprotein Cholesterol\n", + "Data Type: object\n", + "Column: Housing status\n", + "Data Type: object\n", + "Column: 0.3 ML Enoxaparin sodium 100 MG/ML Prefilled Syringe\n", + "Data Type: object\n", + "Column: Nonproliferative diabetic retinopathy due to type 2 diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: pH of Urine by Test strip\n", + "Data Type: object\n", + "Column: Erythrocyte distribution width [Ratio] by Automated count\n", + "Data Type: object\n", + "Column: losartan potassium 50 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Tear of meniscus of knee\n", + "Data Type: object\n", + "Column: SARS-COV-2 (COVID-19) vaccine vector non-replicating recombinant spike protein-Ad26 preservative free 0.5 mL\n", + "Data Type: object\n", + "Column: Excision of breast tissue (procedure)\n", + "Data Type: object\n", + "Column: Unhealthy alcohol drinking behavior (finding)\n", + "Data Type: object\n", + "Column: Clavicle X-ray\n", + "Data Type: object\n", + "Column: Capillary refill [Time] of Nail bed\n", + "Data Type: object\n", + "Column: Calcium\n", + "Data Type: object\n", + "Column: Admission to trauma surgery department\n", + "Data Type: object\n", + "Column: Primary fibromyalgia syndrome\n", + "Data Type: object\n", + "Column: Human epidermal growth factor receptor 2 gene detection by fluorescence in situ hybridization (procedure)\n", + "Data Type: object\n", + "Column: Nitrofurantoin 5 MG/ML Oral Suspension\n", + "Data Type: object\n", + "Column: Chronic intractable migraine without aura\n", + "Data Type: object\n", + "Column: Refugee (person)\n", + "Data Type: object\n", + "Column: Joint pain (finding)\n", + "Data Type: object\n", + "Column: Chronic obstructive bronchitis (disorder)\n", + "Data Type: object\n", + "Column: Interstitial brachytherapy (procedure)\n", + "Data Type: object\n", + "Column: carvedilol 25 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Insertion of biventricular implantable cardioverter defibrillator\n", + "Data Type: object\n", + "Column: Standard pregnancy test\n", + "Data Type: object\n", + "Column: Smokes tobacco daily\n", + "Data Type: object\n", + "Column: Bone immobilization\n", + "Data Type: object\n", + "Column: Hypertension\n", + "Data Type: object\n", + "Column: palbociclib 100 MG Oral Capsule\n", + "Data Type: object\n", + "Column: Appendicitis\n", + "Data Type: object\n", + "Column: Digital examination of rectum\n", + "Data Type: object\n", + "Column: Localized primary osteoarthritis of the hand\n", + "Data Type: object\n", + "Column: Seizure Count Cerebral Cortex Electroencephalogram (EEG)\n", + "Data Type: object\n", + "Column: Speech and language therapy regime (regime/therapy\n", + "Data Type: object\n", + "Column: Levothyroxine Sodium 0.075 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Platelet Count\n", + "Data Type: float64\n", + "Column: Polyp size greatest dimension by CAP cancer protocols\n", + "Data Type: object\n", + "Column: Azithromycin 250 MG Oral Tablet\n", + "Data Type: object\n", + "Column: state\n", + "Data Type: object\n", + "Column: Nitrite [Presence] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Closed fracture of hip\n", + "Data Type: object\n", + "Column: 3 ML Amiodarone hydrocholoride 50 MG/ML Prefilled Syringe\n", + "Data Type: object\n", + "Column: Not in labor force (finding)\n", + "Data Type: object\n", + "Column: Errin 28 Day Pack\n", + "Data Type: object\n", + "Column: Total Cholesterol\n", + "Data Type: object\n", + "Column: Amputation of right foot\n", + "Data Type: object\n", + "Column: 24 HR Donepezil hydrochloride 10 MG / Memantine hydrochloride 28 MG Extended Release Oral Capsule\n", + "Data Type: object\n", + "Column: Lenzilumab 200 MG IV\n", + "Data Type: object\n", + "Column: Magnesium [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Amoxicillin 250 MG Oral Capsule\n", + "Data Type: object\n", + "Column: Chloride\n", + "Data Type: object\n", + "Column: Cholelithiasis\n", + "Data Type: object\n", + "Column: Transformed migraine (disorder)\n", + "Data Type: object\n", + "Column: Creatinine\n", + "Data Type: object\n", + "Column: Knee X-ray\n", + "Data Type: object\n", + "Column: Ankle X-ray\n", + "Data Type: object\n", + "Column: Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain\n", + "Data Type: object\n", + "Column: methadone hydrochloride 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Anion Gap\n", + "Data Type: float64\n", + "Column: Whiplash injury to neck\n", + "Data Type: object\n", + "Column: Spontaneous breech delivery\n", + "Data Type: object\n", + "Column: Influenza virus B Ag [Presence] in Nasopharynx by Rapid immunoassay\n", + "Data Type: object\n", + "Column: Implantation of left ventricular assist device (procedure)\n", + "Data Type: object\n", + "Column: Infection caused by Staphylococcus aureus\n", + "Data Type: float64\n", + "Column: Macular edema and retinopathy due to type 2 diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: Posttraumatic stress disorder\n", + "Data Type: object\n", + "Column: Amoxicillin 250 MG / Clavulanate 125 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Review of systems (procedure)\n", + "Data Type: object\n", + "Column: Hemoglobin [Mass/volume] in Blood\n", + "Data Type: object\n", + "Column: 120 ACTUAT Fluticasone propionate 0.044 MG/ACTUAT Metered Dose Inhaler\n", + "Data Type: object\n", + "Column: Iron [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Latex (substance)\n", + "Data Type: object\n", + "Column: Milnacipran hydrochloride 100 MG Oral Tablet\n", + "Data Type: object\n", + "Column: 10 ML Fluorouracil 50 MG/ML Injection\n", + "Data Type: object\n", + "Column: 1 ML Epinephrine 1 MG/ML Injection\n", + "Data Type: object\n", + "Column: Meperidine Hydrochloride 50 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Fracture of forearm\n", + "Data Type: object\n", + "Column: Methotrexate 2.5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: 5 ML SUFentanil 0.05 MG/ML Injection\n", + "Data Type: object\n", + "Column: Drug overdose\n", + "Data Type: object\n", + "Column: Acute bronchitis (disorder)\n", + "Data Type: object\n", + "Column: C reactive protein [Mass/volume] in Serum or Plasma\n", + "Data Type: float64\n", + "Column: Chronic paralysis due to lesion of spinal cord\n", + "Data Type: object\n", + "Column: Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Catheter ablation of tissue of heart\n", + "Data Type: object\n", + "Column: Screening for domestic abuse (procedure)\n", + "Data Type: object\n", + "Column: Attempted suicide - suffocation\n", + "Data Type: object\n", + "Column: Fibrin D-dimer FEU [Mass/volume] in Platelet poor plasma\n", + "Data Type: float64\n", + "Column: Nausea (finding)\n", + "Data Type: object\n", + "Column: History of cardiac arrest (situation)\n", + "Data Type: object\n", + "Column: Excision of fallopian tube and surgical removal of ectopic pregnancy\n", + "Data Type: object\n", + "Column: Intravenous infusion (procedure)\n", + "Data Type: float64\n", + "Column: Levora 0.15/30 28 Day Pack\n", + "Data Type: object\n", + "Column: Erythrocyte distribution width [Entitic volume] by Automated count\n", + "Data Type: object\n", + "Column: Screening for occult blood in feces (procedure)\n", + "Data Type: object\n", + "Column: Left ventricular Ejection fraction\n", + "Data Type: object\n", + "Column: 100 ML Propofol 10 MG/ML Injection\n", + "Data Type: object\n", + "Column: History of upper limb amputation (situation)\n", + "Data Type: float64\n", + "Column: Captopril 25 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Ultrasonography of abdomen right upper quadrant and epigastrium\n", + "Data Type: object\n", + "Column: Extraction of wisdom tooth\n", + "Data Type: object\n", + "Column: NDA020800 0.3 ML Epinephrine 1 MG/ML Auto-Injector\n", + "Data Type: object\n", + "Column: Peripheral blood smear interpretation\n", + "Data Type: object\n", + "Column: Insertion of endotracheal tube (procedure)\n", + "Data Type: object\n", + "Column: Urine screening test for diabetes\n", + "Data Type: object\n", + "Column: History of lower limb amputation (situation)\n", + "Data Type: object\n", + "Column: Stroke\n", + "Data Type: object\n", + "Column: Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Screening for chromosomal aneuploidy in prenatal amniotic fluid\n", + "Data Type: object\n", + "Column: Proliferative diabetic retinopathy due to type II diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: ethnic\n", + "Data Type: object\n", + "Column: Male infertility due to cystic fibrosis (disorder)\n", + "Data Type: float64\n", + "Column: exemestane 25 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Evaluation of psychiatric state of patient\n", + "Data Type: object\n", + "Column: Tubal pregnancy\n", + "Data Type: object\n", + "Column: label\n", + "Data Type: int64\n", + "Column: Episiotomy\n", + "Data Type: object\n", + "Column: 150 ML vancomycin 5 MG/ML Injection\n", + "Data Type: object\n", + "Column: Naltrexone hydrochloride 50 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Transfusion of plasma (procedure)\n", + "Data Type: float64\n", + "Column: Oxygen/Inspired gas setting [Volume Fraction] Ventilator\n", + "Data Type: float64\n", + "Column: Loratadine 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: 3 ML liraglutide 6 MG/ML Pen Injector\n", + "Data Type: object\n", + "Column: Cough (finding)\n", + "Data Type: object\n", + "Column: Alendronic acid 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: 4 ML norepinephrine 1 MG/ML Injection\n", + "Data Type: object\n", + "Column: Bacterial infectious disease (disorder)\n", + "Data Type: object\n", + "Column: Chronic pain\n", + "Data Type: object\n", + "Column: Surgical manipulation of shoulder joint\n", + "Data Type: object\n", + "Column: Hemodialysis (procedure)\n", + "Data Type: object\n", + "Column: Impacted molars\n", + "Data Type: object\n", + "Column: Lisinopril\n", + "Data Type: object\n", + "Column: Body temperature\n", + "Data Type: object\n", + "Column: Cystic Fibrosis\n", + "Data Type: float64\n", + "Column: Assessment of health and social care needs (procedure)\n", + "Data Type: object\n", + "Column: NDA020503 200 ACTUAT Albuterol 0.09 MG/ACTUAT Metered Dose Inhaler\n", + "Data Type: object\n", + "Column: HER2 [Presence] in Breast cancer specimen by Immune stain\n", + "Data Type: object\n", + "Column: Abuse-Deterrent 12 HR Oxycodone Hydrochloride 10 MG Extended Release Oral Tablet [Oxycontin]\n", + "Data Type: object\n", + "Column: Streptococcal sore throat (disorder)\n", + "Data Type: object\n", + "Column: Coronary artery bypass grafting\n", + "Data Type: object\n", + "Column: American house dust mite IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Penicillin V\n", + "Data Type: object\n", + "Column: Seizure disorder\n", + "Data Type: object\n", + "Column: Oxygen saturation in Arterial blood\n", + "Data Type: object\n", + "Column: Social isolation (finding)\n", + "Data Type: object\n", + "Column: Physical examination\n", + "Data Type: object\n", + "Column: Acquired coagulation disorder (disorder)\n", + "Data Type: object\n", + "Column: Glucose [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Suture open wound\n", + "Data Type: object\n", + "Column: Lupus erythematosus\n", + "Data Type: object\n", + "Column: Rectal polypectomy\n", + "Data Type: object\n", + "Column: Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Brachytherapy of breast (procedure)\n", + "Data Type: object\n", + "Column: Recurrent urinary tract infection\n", + "Data Type: object\n", + "Column: Memantine hydrochloride 2 MG/ML Oral Solution\n", + "Data Type: object\n", + "Column: Terfenadine 60 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Construction of diverting colostomy\n", + "Data Type: object\n", + "Column: Cytopathology procedure preparation of smear genital source\n", + "Data Type: object\n", + "Column: Notifications (procedure)\n", + "Data Type: object\n", + "Column: Coronary Heart Disease\n", + "Data Type: object\n", + "Column: Excision of sentinel lymph node (procedure)\n", + "Data Type: object\n", + "Column: Microbial culture (procedure)\n", + "Data Type: object\n", + "Column: Systolic Blood Pressure\n", + "Data Type: object\n", + "Column: Lactate [Mass/volume] in Blood\n", + "Data Type: object\n", + "Column: Secondary malignant neoplasm of colon\n", + "Data Type: object\n", + "Column: tramadol hydrochloride 50 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Body mass index 40+ - severely obese (finding)\n", + "Data Type: float64\n", + "Column: Latex IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Walnut IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Plain chest X-ray (procedure)\n", + "Data Type: object\n", + "Column: Percutaneous coronary intervention\n", + "Data Type: object\n", + "Column: Septic shock (disorder)\n", + "Data Type: object\n", + "Column: Fracture of clavicle\n", + "Data Type: object\n", + "Column: INR in Platelet poor plasma by Coagulation assay\n", + "Data Type: float64\n", + "Column: Nursing care/supplementary surveillance (regime/therapy)\n", + "Data Type: object\n", + "Column: Thyroxine (T4) free [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Insertion of subcutaneous contraceptive\n", + "Data Type: object\n", + "Column: Protein [Presence] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Hydrochlorothiazide 25 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Social migrant (finding)\n", + "Data Type: object\n", + "Column: Clopidogrel 75 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Depression screening using Patient Health Questionnaire Two-Item score (procedure)\n", + "Data Type: object\n", + "Column: Injury of heart (disorder)\n", + "Data Type: object\n", + "Column: pneumococcal polysaccharide vaccine 23 valent\n", + "Data Type: object\n", + "Column: Simvastatin 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Natazia 28 Day Pack\n", + "Data Type: object\n", + "Column: Weaning from mechanically assisted ventilation (procedure)\n", + "Data Type: object\n", + "Column: Screening for drug abuse (procedure)\n", + "Data Type: object\n", + "Column: Bilirubin.total [Presence] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Mental health screening (procedure)\n", + "Data Type: object\n", + "Column: Colchicine 0.6 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Homeless (finding)\n", + "Data Type: object\n", + "Column: MCV\n", + "Data Type: float64\n", + "Column: Chill (finding)\n", + "Data Type: object\n", + "Column: Pyelonephritis\n", + "Data Type: object\n", + "Column: Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Acute respiratory distress syndrome (disorder)\n", + "Data Type: object\n", + "Column: Acetaminophen 500 MG Oral Tablet\n", + "Data Type: object\n", + "Column: MCHC [Mass/volume] by Automated count\n", + "Data Type: object\n", + "Column: Evaluation of uterine fundal height\n", + "Data Type: object\n", + "Column: Acute viral pharyngitis (disorder)\n", + "Data Type: object\n", + "Column: HIV status\n", + "Data Type: object\n", + "Column: Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain\n", + "Data Type: object\n", + "Column: Assessment using Morse Fall Scale (procedure)\n", + "Data Type: object\n", + "Column: Combined chemotherapy and radiation therapy (procedure)\n", + "Data Type: object\n", + "Column: Depression screening (procedure)\n", + "Data Type: object\n", + "Column: Mestranol / Norethynodrel [Enovid]\n", + "Data Type: object\n", + "Column: Manual pelvic examination (procedure)\n", + "Data Type: object\n", + "Column: Physical therapy procedure (regime/therapy)\n", + "Data Type: object\n", + "Column: Hemoglobin A1c/Hemoglobin.total in Blood\n", + "Data Type: object\n", + "Column: Third degree burn\n", + "Data Type: object\n", + "Column: Midazolam 1 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: 10 ML Fentanyl 0.05 MG/ML Injection\n", + "Data Type: object\n", + "Column: Ferritin [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Albumin\n", + "Data Type: object\n", + "Column: clonazePAM 0.25 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Colonoscopy\n", + "Data Type: object\n", + "Column: Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method\n", + "Data Type: object\n", + "Column: Basophils [#/volume] in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Rubella screening\n", + "Data Type: object\n", + "Column: Psychiatric follow-up\n", + "Data Type: object\n", + "Column: Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Diabetic renal disease (disorder)\n", + "Data Type: object\n", + "Column: Cardiovascular stress testing (procedure)\n", + "Data Type: object\n", + "Column: Acetaminophen 300 MG / Codeine Phosphate 15 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Chronic kidney disease stage 2 (disorder)\n", + "Data Type: object\n", + "Column: Hyperglycemia (disorder)\n", + "Data Type: object\n", + "Column: Fever (finding)\n", + "Data Type: object\n", + "Column: Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Normal pregnancy\n", + "Data Type: object\n", + "Column: Clarity of Urine\n", + "Data Type: object\n", + "Column: cycloSPORINE modified 100 MG Oral Capsule\n", + "Data Type: object\n", + "Column: Induced termination of pregnancy\n", + "Data Type: object\n", + "Column: 5 ML hyaluronidase-oysk 2000 UNT/ML / trastuzumab 120 MG/ML Injection\n", + "Data Type: object\n", + "Column: Severe anxiety (panic) (finding\n", + "Data Type: object\n", + "Column: Reports of violence in the environment (finding)\n", + "Data Type: object\n", + "Column: Cat dander IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Monitoring of patient (regime/therapy)\n", + "Data Type: object\n", + "Column: buprenorphine 2 MG / naloxone 0.5 MG Sublingual Tablet\n", + "Data Type: object\n", + "Column: Rheumatoid arthritis\n", + "Data Type: object\n", + "Column: Suspected COVID-19\n", + "Data Type: object\n", + "Column: letrozole 2.5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Insertion of intrauterine contraceptive device\n", + "Data Type: object\n", + "Column: Sweat Test\n", + "Data Type: float64\n", + "Column: Instrumental delivery\n", + "Data Type: object\n", + "Column: Antenatal RhD antibody screening\n", + "Data Type: object\n", + "Column: Glucose\n", + "Data Type: object\n", + "Column: Percutaneous mechanical thrombectomy of portal vein using fluoroscopic guidance\n", + "Data Type: object\n", + "Column: Replacement of contraceptive intrauterine device\n", + "Data Type: object\n", + "Column: Low Density Lipoprotein Cholesterol\n", + "Data Type: object\n", + "Column: Seasonique 91 Day Pack\n", + "Data Type: object\n", + "Column: Aspirin 81 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Headache (finding)\n", + "Data Type: object\n", + "Column: Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Tacrine 10 MG Oral Capsule\n", + "Data Type: object\n", + "Column: Medical induction of labor\n", + "Data Type: object\n", + "Column: Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method\n", + "Data Type: object\n", + "Column: Isoflurane 999 MG/ML Inhalant Solution\n", + "Data Type: object\n", + "Column: Upper arm X-ray\n", + "Data Type: object\n", + "Column: Heart failure education (procedure)\n", + "Data Type: object\n", + "Column: Wheezing (finding)\n", + "Data Type: object\n", + "Column: duloxetine 20 MG Delayed Release Oral Capsule\n", + "Data Type: object\n", + "Column: Response to cancer treatment\n", + "Data Type: object\n", + "Column: Ketones [Mass/volume] in Urine by Test strip\n", + "Data Type: object\n", + "Column: 20 ML tocilizumab 20 MG/ML Injection\n", + "Data Type: object\n", + "Column: Verapamil Hydrochloride 40 MG\n", + "Data Type: object\n", + "Column: Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Liletta 52 MG Intrauterine System\n", + "Data Type: object\n", + "Column: race\n", + "Data Type: object\n", + "Column: Penicillin V Potassium 500 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Vomiting symptom (finding)\n", + "Data Type: object\n", + "Column: 0.67 ML anakinra 149 MG/ML Prefilled Syringe\n", + "Data Type: float64\n", + "Column: Escherichia coli urinary tract infection\n", + "Data Type: object\n", + "Column: Chemotherapy (procedure)\n", + "Data Type: object\n", + "Column: Radiation oncology AND/OR radiotherapy (procedure)\n", + "Data Type: object\n", + "Column: Procalcitonin [Mass/volume] in Serum or Plasma\n", + "Data Type: float64\n", + "Column: Doxycycline Monohydrate 100 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Ketones [Presence] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Passive conjunctival congestion (finding)\n", + "Data Type: object\n", + "Column: Oxygen Therapy\n", + "Data Type: object\n", + "Column: Estrostep Fe 28 Day Pack\n", + "Data Type: object\n", + "Column: Blood typing RH typing\n", + "Data Type: object\n", + "Column: Anemia (disorder)\n", + "Data Type: object\n", + "Column: Throat culture (procedure)\n", + "Data Type: object\n", + "Column: Admission to burn unit\n", + "Data Type: object\n", + "Column: Pelvis X-ray\n", + "Data Type: object\n", + "Column: Carbon Dioxide\n", + "Data Type: object\n", + "Column: Creatine kinase [Enzymatic activity/volume] in Serum or Plasma\n", + "Data Type: float64\n", + "Column: canagliflozin 100 MG Oral Tablet\n", + "Data Type: float64\n", + "Column: Admission to neurosurgical department\n", + "Data Type: object\n", + "Column: Iron saturation [Mass Fraction] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Syphilis infection test\n", + "Data Type: object\n", + "Column: HER2 [Presence] in Breast cancer specimen by FISH\n", + "Data Type: object\n", + "Column: 100 ML zoledronic acid 0.04 MG/ML Injection\n", + "Data Type: object\n", + "Column: Prediabetes\n", + "Data Type: object\n", + "Column: Cow milk IgE Ab in Serum\n", + "Data Type: object\n", + "Column: albuterol 5 MG/ML Inhalation Solution\n", + "Data Type: object\n", + "Column: Respiratory rate\n", + "Data Type: object\n", + "Column: Intramuscular injection\n", + "Data Type: object\n", + "Column: Piperacillin 4000 MG / tazobactam 500 MG Injection\n", + "Data Type: object\n", + "Column: Polyp of colon\n", + "Data Type: object\n", + "Column: Appendectomy\n", + "Data Type: object\n", + "Column: Treatment status Cancer\n", + "Data Type: object\n", + "Column: Concussion with no loss of consciousness\n", + "Data Type: object\n", + "Column: Aztreonam 2000 MG Injection\n", + "Data Type: object\n", + "Column: Acute deep venous thrombosis (disorder)\n", + "Data Type: object\n", + "Column: Hep A adult\n", + "Data Type: object\n", + "Column: Pulmonary emphysema (disorder)\n", + "Data Type: object\n", + "Column: Idiopathic atrophic hypothyroidism\n", + "Data Type: object\n", + "Column: diphenhydrAMINE Hydrochloride 25 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Hematocrit [Volume Fraction] of Blood by Automated count\n", + "Data Type: object\n", + "Column: Hospice care (regime/therapy)\n", + "Data Type: object\n", + "Column: Brief general examination (procedure)\n", + "Data Type: object\n", + "Column: Mammography (procedure)\n", + "Data Type: object\n", + "Column: Total Bilirubin (Elevated)\n", + "Data Type: float64\n", + "Column: 10 ML Pamidronate Disodium 3 MG/ML Injection\n", + "Data Type: object\n", + "Column: History of disarticulation at wrist (situation)\n", + "Data Type: float64\n", + "Column: DXA [T-score] Bone density\n", + "Data Type: object\n", + "Column: Loss of taste (finding)\n", + "Data Type: object\n", + "Column: Carboplatin 10 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Fexofenadine hydrochloride 60 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Laparoscopic Removal of Gall Bladder\n", + "Data Type: object\n", + "Column: FEV1/FVC\n", + "Data Type: object\n", + "Column: Are you covered by health insurance or some other kind of health care plan [PhenX]\n", + "Data Type: object\n", + "Column: Acetaminophen 300 MG / Hydrocodone Bitartrate 5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Blindness due to type 2 diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: Childbirth\n", + "Data Type: object\n", + "Column: Prostate specific Ag [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Allergy screening test\n", + "Data Type: object\n", + "Column: Sputum finding (finding)\n", + "Data Type: object\n", + "Column: Wheat IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Carbamazepine[Tegretol]\n", + "Data Type: object\n", + "Column: Pathological fracture due to osteoporosis (disorder)\n", + "Data Type: object\n", + "Column: 12 HR Hydrocodone Bitartrate 10 MG Extended Release Oral Capsule\n", + "Data Type: object\n", + "Column: Admit to ICU (procedure)\n", + "Data Type: object\n", + "Column: Chronic low back pain (finding)\n", + "Data Type: object\n", + "Column: Hypertriglyceridemia (disorder)\n", + "Data Type: object\n", + "Column: Donepezil hydrochloride 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Proteinuria due to type 2 diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: Prothrombin time (PT)\n", + "Data Type: float64\n", + "Column: Removal of subcutaneous contraceptive\n", + "Data Type: object\n", + "Column: NITROFURANTOIN MACROCRYSTALS 50 MG Oral Capsule\n", + "Data Type: object\n", + "Column: Monocytes/100 leukocytes in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Suicide risk assessment (procedure)\n", + "Data Type: object\n", + "Column: Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Concussion injury of brain\n", + "Data Type: object\n", + "Column: Diabetes from Cystic Fibrosis\n", + "Data Type: float64\n", + "Column: Leukocyte esterase [Presence] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Urine protein test\n", + "Data Type: object\n", + "Column: cetirizine hydrochloride 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Injury of kidney (disorder)\n", + "Data Type: object\n", + "Column: marital\n", + "Data Type: object\n", + "Column: 0.25 ML Leuprolide Acetate 30 MG/ML Prefilled Syringe\n", + "Data Type: object\n", + "Column: Sepsis caused by Pseudomonas (disorder)\n", + "Data Type: float64\n", + "Column: Peanut IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Urea nitrogen [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Gonorrhea infection test\n", + "Data Type: object\n", + "Column: 24hr nicotine transdermal patch\n", + "Data Type: object\n", + "Column: Oxygen administration by mask (procedure)\n", + "Data Type: object\n", + "Column: Fibromyalgia (disorder)\n", + "Data Type: object\n", + "Column: MCV [Entitic volume] by Automated count\n", + "Data Type: object\n", + "Column: Part-time employment (finding)\n", + "Data Type: object\n", + "Column: Primary malignant neoplasm of colon\n", + "Data Type: object\n", + "Column: Calcium [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: 24 HR Metformin hydrochloride 500 MG Extended Release Oral Tablet\n", + "Data Type: object\n", + "Column: Intravenous injection (procedure)\n", + "Data Type: object\n", + "Column: Acetaminophen 21.7 MG/ML / Dextromethorphan Hydrobromide 1 MG/ML / doxylamine succinate 0.417 MG/ML Oral Solution\n", + "Data Type: object\n", + "Column: Heart rate\n", + "Data Type: object\n", + "Column: 100 ML Epirubicin Hydrochloride 2 MG/ML Injection\n", + "Data Type: object\n", + "Column: Monocytes [#/volume] in Blood by Automated count\n", + "Data Type: float64\n", + "Column: scc\n", + "Data Type: int64\n", + "Column: gender\n", + "Data Type: object\n", + "Column: Atorvastatin 80 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Cefuroxime 250 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Tamoxifen 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: At risk for suicide (finding)\n", + "Data Type: object\n", + "Column: Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "Data Type: object\n", + "Column: Atrial Fibrillation\n", + "Data Type: object\n", + "Column: Fatigue (finding)\n", + "Data Type: object\n", + "Column: Intracavitary brachytherapy (procedure)\n", + "Data Type: object\n", + "Column: Acetaminophen 325 MG / HYDROcodone Bitartrate 7.5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Neutrophils/100 leukocytes in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Preeclampsia\n", + "Data Type: object\n", + "Column: desflurane 1000 MG/ML Inhalation Solution\n", + "Data Type: object\n", + "Column: Assessment using Alcohol Use Disorders Identification Test - Consumption (procedure)\n", + "Data Type: object\n", + "Column: Depression screening using Patient Health Questionnaire Nine Item score (procedure)\n", + "Data Type: object\n", + "Column: Electrical cardioversion\n", + "Data Type: object\n", + "Column: Diabetic retinopathy associated with type II diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: Lymphocytes/100 leukocytes in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Total knee replacement\n", + "Data Type: object\n", + "Column: Erythrocytes [#/volume] in Blood by Automated count\n", + "Data Type: object\n", + "Column: Red Blood Cell\n", + "Data Type: float64\n", + "Column: 10 ML Furosemide 10 MG/ML Injection\n", + "Data Type: object\n", + "Column: Rocuronium bromide 10 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Shrimp IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Penicillin G 375 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Epilepsy\n", + "Data Type: object\n", + "Column: First degree burn\n", + "Data Type: object\n", + "Column: Laceration of hand\n", + "Data Type: object\n", + "Column: Mental health Telehealth Note\n", + "Data Type: float64\n", + "Column: Victim of intimate partner abuse (finding)\n", + "Data Type: object\n", + "Column: Pneumonia (disorder)\n", + "Data Type: object\n", + "Column: Urea Nitrogen\n", + "Data Type: object\n", + "Column: Transfer to stepdown unit (procedure)\n", + "Data Type: object\n", + "Column: Osteoarthritis of hip\n", + "Data Type: object\n", + "Column: MCH [Entitic mass] by Automated count\n", + "Data Type: object\n", + "Column: Atropine Sulfate 1 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Chlamydia antigen test\n", + "Data Type: object\n", + "Column: Acute bacterial sinusitis (disorder)\n", + "Data Type: object\n", + "Column: chloroquine phosphate 500 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Miscarriage in first trimester\n", + "Data Type: object\n", + "Column: Potassium\n", + "Data Type: object\n", + "Column: Microalbuminuria due to type 2 diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: Platelet mean volume [Entitic volume] in Blood by Automated count\n", + "Data Type: object\n", + "Column: Pre-discharge assessment (procedure)\n", + "Data Type: object\n", + "Column: Biopsy of breast (procedure)\n", + "Data Type: object\n", + "Column: Acute Cholecystitis\n", + "Data Type: object\n", + "Column: predniSONE 20 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Eosinophils [#/volume] in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Tobacco smoking status NHIS\n", + "Data Type: object\n", + "Column: Acetaminophen 325 MG / oxyCODONE Hydrochloride 2.5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Acetaminophen 325 MG / oxyCODONE Hydrochloride 5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Hypoxemia (disorder)\n", + "Data Type: object\n", + "Column: Sepsis caused by virus (disorder)\n", + "Data Type: object\n", + "Column: 10 ML Doxorubicin Hydrochloride 2 MG/ML Injection\n", + "Data Type: object\n", + "Column: Tree pollen (substance)\n", + "Data Type: object\n", + "Column: Sodium\n", + "Data Type: object\n", + "Column: NT-proBNP\n", + "Data Type: object\n", + "Column: Streptococcus pneumoniae group B antigen test\n", + "Data Type: object\n", + "Column: Suicidal deliberate poisoning\n", + "Data Type: float64\n", + "Column: RBC Distribution Width\n", + "Data Type: float64\n", + "Column: Diabetes\n", + "Data Type: object\n", + "Column: Hepatitis C antibody test\n", + "Data Type: object\n", + "Column: Basophils/100 leukocytes in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Surgical manipulation of joint of knee\n", + "Data Type: object\n", + "Column: Cognitive and behavioral therapy (regime/therapy)\n", + "Data Type: object\n", + "Column: Hemoglobin / Hematocrit / Platelet count\n", + "Data Type: object\n", + "Column: Human immunodeficiency virus antigen test\n", + "Data Type: object\n", + "Column: 1 ML medroxyPROGESTERone acetate 150 MG/ML Injection\n", + "Data Type: object\n", + "Column: 1 ML Morphine Sulfate 5 MG/ML Injection\n", + "Data Type: object\n", + "Column: Assessment of anxiety (procedure)\n", + "Data Type: object\n", + "Column: Pancreatin 600 MG Oral Tablet\n", + "Data Type: float64\n", + "Column: Concussion with loss of consciousness\n", + "Data Type: object\n", + "Column: Sodium Chloride 9 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Hemoptysis (finding)\n", + "Data Type: object\n", + "Column: Sore throat symptom (finding)\n", + "Data Type: object\n", + "Column: Body mass index 30+ - obesity (finding)\n", + "Data Type: object\n", + "Column: Acute pulmonary embolism (disorder)\n", + "Data Type: object\n", + "Column: Movement therapy (regime/therapy)\n", + "Data Type: object\n", + "Column: Resuscitation using intravenous fluid (procedure)\n", + "Data Type: object\n", + "Column: Vasectomy\n", + "Data Type: object\n", + "Column: Allopurinol 100 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Protein [Mass/volume] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Leukocytes [#/volume] in Blood by Automated count\n", + "Data Type: object\n", + "Column: Measurement of Varicella-zoster virus antibody\n", + "Data Type: object\n", + "Column: Augmentation of labor\n", + "Data Type: object\n", + "Column: Abuse-Deterrent 12 HR Oxycodone Hydrochloride 15 MG Extended Release Oral Tablet\n", + "Data Type: object\n", + "Column: Diastolic Blood Pressure\n", + "Data Type: object\n", + "Column: Transplant of lung (procedure)\n", + "Data Type: object\n", + "Column: 20 Gene mutation test\n", + "Data Type: float64\n", + "Column: Biopsy of colon\n", + "Data Type: object\n", + "Column: Misuses drugs (finding)\n", + "Data Type: object\n", + "Column: zoster\n", + "Data Type: object\n", + "Column: Recurrent rectal polyp\n", + "Data Type: object\n", + "Column: Gram positive blood culture panel by Probe in Positive blood culture\n", + "Data Type: object\n", + "Column: Asthma screening\n", + "Data Type: object\n", + "Column: Dyspnea (finding)\n", + "Data Type: object\n", + "Column: Oxygen [Partial pressure] in Arterial blood\n", + "Data Type: float64\n", + "Column: Metastasis from malignant tumor of prostate (disorder)\n", + "Data Type: object\n", + "Column: Influenza virus A Ag [Presence] in Nasopharynx by Rapid immunoassay\n", + "Data Type: object\n", + "Column: pH of Arterial blood\n", + "Data Type: float64\n", + "Column: Home health aide service (regime/therapy)\n", + "Data Type: object\n", + "Column: Specific gravity of Urine by Test strip\n", + "Data Type: object\n", + "Column: Ibuprofen 200 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Oxygen Saturation\n", + "Data Type: object\n", + "Column: Injury of anterior cruciate ligament\n", + "Data Type: object\n", + "Column: ado-trastuzumab emtansine 100 MG Injection\n", + "Data Type: object\n", + "Column: Mold (organism)\n", + "Data Type: object\n", + "Column: Professional / ancillary services care (regime/therapy)\n", + "Data Type: object\n", + "Column: Renal dialysis (procedure)\n", + "Data Type: object\n", + "Column: Psychosocial care (regime/therapy)\n", + "Data Type: object\n", + "Column: Initial patient assessment (procedure)\n", + "Data Type: object\n", + "Column: Sepsis (disorder)\n", + "Data Type: object\n", + "Column: House dust mite (organism)\n", + "Data Type: object\n", + "Column: SARS-COV-2 (COVID-19) vaccine mRNA spike protein LNP preservative free 30 mcg/0.3mL dose\n", + "Data Type: object\n", + "Column: Hydroxychloroquine Sulfate 200 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Injury of medial collateral ligament of knee\n", + "Data Type: object\n", + "Column: Pulmozyme (Dornase Alfa)\n", + "Data Type: float64\n", + "Column: 12 HR Cefaclor 500 MG Extended Release Oral Tablet\n", + "Data Type: object\n", + "Column: Amputation of right leg\n", + "Data Type: object\n", + "Column: Comprehensive interview and evaluation (procedure)\n", + "Data Type: object\n", + "Column: Discharge from skilled nursing facility (procedure)\n", + "Data Type: object\n", + "Column: Chronic kidney disease stage 3 (disorder)\n", + "Data Type: object\n", + "Column: Referral to home health care service (procedure)\n", + "Data Type: object\n", + "Column: baricitinib 2 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Total replacement of hip\n", + "Data Type: float64\n", + "Column: Radiation therapy care (regime/therapy)\n", + "Data Type: object\n", + "Column: Lung Transplant\n", + "Data Type: float64\n", + "Column: Neutrophils [#/volume] in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Nitroglycerin 0.4 MG/ACTUAT Mucosal Spray\n", + "Data Type: object\n", + "Column: Occupational therapy (regime/therapy)\n", + "Data Type: object\n", + "Column: insulin human isophane 70 UNT/ML / Regular Insulin Human 30 UNT/ML Injectable Suspension [Humulin]\n", + "Data Type: object\n", + "Column: Overlapping malignant neoplasm of colon\n", + "Data Type: object\n", + "Column: Familial Alzheimer's disease of early onset (disorder)\n", + "Data Type: object\n", + "Column: Open Removal of Gall Bladder\n", + "Data Type: object\n", + "Column: Paclitaxel 100 MG Injection\n", + "Data Type: object\n", + "Column: 1 ML denosumab 60 MG/ML Prefilled Syringe\n", + "Data Type: object\n", + "Column: Premature birth of newborn\n", + "Data Type: object\n", + "Column: Vitamin B 12 5 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Postoperative procedure education (procedure)\n", + "Data Type: object\n", + "Column: age\n", + "Data Type: object\n", + "Column: Lymphocytes [#/volume] in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Bilirubin.total [Mass/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Hyperlipidemia\n", + "Data Type: object\n", + "Column: Mental health Outpatient Note\n", + "Data Type: float64\n", + "Column: Has a criminal record (finding)\n", + "Data Type: object\n", + "Column: Malignant tumor of colon\n", + "Data Type: object\n", + "Column: Assessment using New York Heart Association Classification (procedure)\n", + "Data Type: object\n", + "Column: Nasal sinus endoscopy (procedure)\n", + "Data Type: object\n", + "Column: Lung volume reduction surgery (procedure)\n", + "Data Type: object\n", + "Column: Auscultation of the fetal heart\n", + "Data Type: object\n", + "Column: Development of individualized plan of care (procedure)\n", + "Data Type: object\n", + "Column: Galantamine 4 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Insulin Lispro 100 UNT/ML Injectable Solution [Humalog]\n", + "Data Type: object\n", + "Column: Malignant neoplasm of breast (disorder)\n", + "Data Type: object\n", + "Column: Glomerular filtration rate/1.73 sq M.predicted\n", + "Data Type: object\n", + "Column: Leucovorin 100 MG Injection\n", + "Data Type: object\n", + "Column: Ibuprofen 400 MG Oral Tablet [Ibu]\n", + "Data Type: object\n", + "Column: Acetaminophen 325 MG Oral Tablet [Tylenol]\n", + "Data Type: object\n", + "Column: Full-time employment (finding)\n", + "Data Type: object\n", + "Column: Verzenio 100 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Soybean IgE Ab in Serum\n", + "Data Type: object\n", + "Column: neratinib 40 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Diazepam 5 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: Mean blood pressure\n", + "Data Type: object\n", + "Column: Mammogram - symptomatic (procedure)\n", + "Data Type: object\n", + "Column: Mirena 52 MG Intrauterine System\n", + "Data Type: object\n", + "Column: Thyrotropin [Units/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Carcinoma in situ of prostate (disorder)\n", + "Data Type: object\n", + "Column: 60 ACTUAT Fluticasone propionate 0.25 MG/ACTUAT / salmeterol 0.05 MG/ACTUAT Dry Powder Inhaler\n", + "Data Type: object\n", + "Column: Ortho Tri-Cyclen 28 Day Pack\n", + "Data Type: object\n", + "Column: Lactate dehydrogenase [Enzymatic activity/volume] in Serum or Plasma by Lactate to pyruvate reaction\n", + "Data Type: float64\n", + "Column: Bilateral tubal ligation\n", + "Data Type: object\n", + "Column: Medication Reconciliation (procedure)\n", + "Data Type: object\n", + "Column: Second degree burn\n", + "Data Type: object\n", + "Column: Globulin [Mass/volume] in Serum by calculation\n", + "Data Type: object\n", + "Column: Artificial respiration (procedure)\n", + "Data Type: object\n", + "Column: Chronic congestive heart failure (disorder)\n", + "Data Type: object\n", + "Column: Removal of endotracheal tube (procedure)\n", + "Data Type: object\n", + "Column: 10 ML Alfentanil 0.5 MG/ML Injection\n", + "Data Type: object\n", + "Column: Excision of axillary lymph node (procedure)\n", + "Data Type: object\n", + "Column: Warfarin Sodium 5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: SARS-COV-2 (COVID-19) vaccine mRNA spike protein LNP preservative free 100 mcg/0.5mL dose\n", + "Data Type: object\n", + "Column: 1 ML DOCEtaxel 20 MG/ML Injection\n", + "Data Type: object\n", + "Column: Phenazopyridine hydrochloride 100 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Codfish IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Chronic sinusitis (disorder)\n", + "Data Type: object\n", + "Column: Care regimes assessment (procedure)\n", + "Data Type: object\n", + "Column: Ampicillin 100 MG/ML Injectable Solution\n", + "Data Type: object\n", + "Column: lapatinib 250 MG Oral Tablet\n", + "Data Type: object\n", + "Column: losartan potassium 25 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Attempted suicide - cut/stab\n", + "Data Type: object\n", + "Column: Influenza seasonal injectable preservative free\n", + "Data Type: object\n", + "Column: Drugs of abuse 5 panel - Urine by Screen method\n", + "Data Type: object\n", + "Column: Electrocardiographic procedure\n", + "Data Type: object\n", + "Column: Counseling for termination of pregnancy\n", + "Data Type: object\n", + "Column: Heart failure (disorder)\n", + "Data Type: object\n", + "Column: White oak IgE Ab in Serum\n", + "Data Type: object\n", + "Column: Echocardiography (procedure)\n", + "Data Type: object\n", + "Column: 10 ML oxaliplatin 5 MG/ML Injection\n", + "Data Type: object\n", + "Column: Injury of tendon of the rotator cuff of shoulder\n", + "Data Type: object\n", + "Column: Partial resection of colon\n", + "Data Type: object\n", + "Column: Non-low risk pregnancy\n", + "Data Type: object\n", + "Column: Ultrasonography of bilateral breasts (procedure)\n", + "Data Type: object\n", + "Column: Acetaminophen/Hydrocodone\n", + "Data Type: object\n", + "Column: Yaz 28 Day Pack\n", + "Data Type: object\n", + "Column: Admission to orthopedic department\n", + "Data Type: object\n", + "Column: History AND physical examination (procedure)\n", + "Data Type: object\n", + "Column: Bullet wound\n", + "Data Type: object\n", + "Column: Td (adult) preservative free\n", + "Data Type: object\n", + "Column: Chloride [Moles/volume] in Serum or Plasma\n", + "Data Type: object\n", + "Column: Interleukin 6 [Mass/volume] in Serum or Plasma\n", + "Data Type: float64\n", + "Column: Muscle pain (finding)\n", + "Data Type: object\n", + "Column: Tumor marker Cancer\n", + "Data Type: object\n", + "Column: Laceration of forearm\n", + "Data Type: object\n", + "Column: Sepsis caused by Staphylococcus aureus\n", + "Data Type: float64\n", + "Column: Myocardial Infarction\n", + "Data Type: object\n", + "Column: Sputum examination (procedure)\n", + "Data Type: object\n", + "Column: Otitis media\n", + "Data Type: object\n", + "Column: Bilirubin.total [Mass/volume] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Pain severity - 0-10 verbal numeric rating [Score] - Reported\n", + "Data Type: object\n", + "Column: Neoplasm of prostate\n", + "Data Type: object\n", + "Column: Gout\n", + "Data Type: object\n", + "Column: Vancomycin 50 MG/ML Injectable Solution\n", + "Data Type: float64\n", + "Column: Naproxen sodium 220 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Glucose [Presence] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Magnetic resonance imaging of breast (procedure)\n", + "Data Type: object\n", + "Column: 2 ML Ondansetron 2 MG/ML Injection\n", + "Data Type: object\n", + "Column: Social case work (regime/therapy)\n", + "Data Type: object\n", + "Column: Carbon dioxide [Partial pressure] in Arterial blood\n", + "Data Type: float64\n", + "Column: Fetus with unknown complication\n", + "Data Type: object\n", + "Column: US Guidance for biopsy of Prostate\n", + "Data Type: object\n", + "Column: Fracture of the vertebral column with spinal cord injury\n", + "Data Type: object\n", + "Column: Oral Glucose Tolerance Test\n", + "Data Type: float64\n", + "Column: Digoxin 0.125 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Metabolic syndrome X (disorder)\n", + "Data Type: object\n", + "Column: Neuropathy due to type 2 diabetes mellitus (disorder)\n", + "Data Type: object\n", + "Column: Sprain of wrist\n", + "Data Type: object\n", + "Column: 0.4 ML Enoxaparin sodium 100 MG/ML Prefilled Syringe\n", + "Data Type: object\n", + "Column: 1 ML Enoxaparin sodium 150 MG/ML Prefilled Syringe\n", + "Data Type: object\n", + "Column: Fracture of ankle\n", + "Data Type: object\n", + "Column: Donepezil hydrochloride 23 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Removal of intrauterine device\n", + "Data Type: object\n", + "Column: Eosinophils/100 leukocytes in Blood by Automated count\n", + "Data Type: float64\n", + "Column: Transplantation of heart (procedure)\n", + "Data Type: object\n", + "Column: vancomycin 1000 MG Injection\n", + "Data Type: object\n", + "Column: piperacillin 2000 MG / tazobactam 250 MG Injection\n", + "Data Type: object\n", + "Column: Opioid abuse (disorder)\n", + "Data Type: object\n", + "Column: amLODIPine 2.5 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Leronlimab 700 MG Injection\n", + "Data Type: object\n", + "Column: Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain\n", + "Data Type: object\n", + "Column: SARS-CoV-2 RNA Pnl Resp NAA+probe\n", + "Data Type: object\n", + "Column: remdesivir 100 MG Injection\n", + "Data Type: object\n", + "Column: 1 ML Epoetin Alfa 4000 UNT/ML Injection [Epogen]\n", + "Data Type: object\n", + "Column: Trinessa 28 Day Pack\n", + "Data Type: object\n", + "Column: 1 ML heparin sodium porcine 5000 UNT/ML Injection\n", + "Data Type: object\n", + "Column: Hemoglobin [Presence] in Urine by Test strip\n", + "Data Type: object\n", + "Column: Astemizole 10 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Sentinel lymph node biopsy (procedure)\n", + "Data Type: object\n", + "Column: 5 ML fulvestrant 50 MG/ML Prefilled Syringe\n", + "Data Type: object\n", + "Column: Hematocrit [Volume Fraction] of Blood\n", + "Data Type: object\n", + "Column: Acetaminophen 325 MG / Oxycodone Hydrochloride 10 MG Oral Tablet [Percocet]\n", + "Data Type: object\n", + "Column: Camila 28 Day Pack\n", + "Data Type: object\n", + "Column: History of appendectomy\n", + "Data Type: object\n", + "Column: remifentanil 2 MG Injection\n", + "Data Type: object\n", + "Column: Chlorpheniramine Maleate 4 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Fetal anatomy study\n", + "Data Type: object\n", + "Column: Bicarbonate [Moles/volume] in Arterial blood\n", + "Data Type: float64\n", + "Column: Screening mammography (procedure)\n", + "Data Type: object\n", + "Column: Sertraline 100 MG Oral Tablet\n", + "Data Type: object\n", + "Column: Transport problems (finding)\n", + "Data Type: object\n", + "Column: Sulfamethoxazole / Trimethoprim\n", + "Data Type: object\n", + "Column: Respiratory Disorders\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Heart and Cardiovascular Diseases\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Metabolic and Endocrine Disorders\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Neurological Disorders\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Orthopedic Injuries\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Mental Health\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Reproductive and Pregnancy\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Pain Relievers and Analesics\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Cardiovascular and Blood Pressure Medications\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Injection Medications\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Oral Medications\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Other Medications\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Therapies and Regimes\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Diagnostic Procedures\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Surgical Interventions\n", + "Data Type: object\n", + "Data Type: int64\n", + "Column: Patient Care Management\n", + "Data Type: object\n", + "Data Type: int64\n" + ] + } + ], + "source": [ + "for col in df2.columns:\n", + " # print data type of column\n", + " print(f\"Column: {col}\") \n", + " print(f\"Data Type: {df2[col].dtype}\")\n", + " if col in categories:\n", + " # change data type to numeric\n", + " df2[col] = pd.to_numeric(df2[col], errors='coerce')\n", + " print(f\"Data Type: {df2[col].dtype}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dropping unnecessary columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not important columns" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "unimportant_columns = ['race', 'ethnic', 'state', 'Social migrant (finding)', 'Lack of access to transportation (finding)', 'Transport problems (finding)', 'Full-time employment (finding)', 'Face mask (physical object)', 'Childbirth', 'Cesarean section', 'Normal pregnancy', 'Non-low risk pregnancy']\n", + "df2.drop(columns=unimportant_columns, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Columns used in new features" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "used_columns = respiratory_disorders_columns + heart_and_cardiovascular_diseases_columns + metabolic_and_endocrine_disorders_columns + neurological_disorders_columns + orthopedic_injuries_columns + mental_health_columns + reproductive_and_pregancy_columns + pain_relievers_and_analesics_columns + cardiovascular_and_blood_pressure_medications_columns + injection_medications_columns + oral_medications_columns + other_medications_columns + therapies_and_regimes_columns + diagnostic_procedures_columns + surgerical_interventions_columns + patient_care_management_columns\n", + "df2.drop(columns=used_columns, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Columns with only null values" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column Null Values Percentage\n", + "---------------------------------------------------------------------------------------------------- ------------------------\n", + "Take blood sample 100\n", + "Infection caused by Staphylococcus aureus 100\n", + "History of upper limb amputation (situation) 100\n", + "Cystic Fibrosis 100\n", + "Body mass index 40+ - severely obese (finding) 100\n", + "Sweat Test 100\n", + "Incision of trachea (procedure) 100\n", + "canagliflozin 100 MG Oral Tablet 100\n", + "History of disarticulation at wrist (situation) 100\n", + "Diabetes from Cystic Fibrosis 100\n", + "Sepsis caused by Pseudomonas (disorder) 100\n", + "Suicidal deliberate poisoning 100\n", + "Pancreatin 600 MG Oral Tablet 100\n", + "20 Gene mutation test 100\n", + "Total replacement of hip 100\n", + "Lung Transplant 100\n", + "Sepsis caused by Staphylococcus aureus 100\n", + "Vancomycin 50 MG/ML Injectable Solution 100\n", + "Oral Glucose Tolerance Test 100\n", + "Intravenous infusion (procedure) 100\n", + "0.67 ML anakinra 149 MG/ML Prefilled Syringe 100\n", + "Bee venom (substance) 100\n", + "Intravenous antibiotic therapy 100\n", + "Sputum Culture 100\n", + "Interleukin 6 [Mass/volume] in Serum or Plasma 99.9889\n", + "Tumor marker Cancer 99.7679\n", + "Thyroxine (T4) free [Mass/volume] in Serum or Plasma 99.4695\n", + "Thyrotropin [Units/volume] in Serum or Plasma 99.4695\n", + "Bicarbonate [Moles/volume] in Arterial blood 98.6848\n", + "Oxygen/Inspired gas setting [Volume Fraction] Ventilator 98.6848\n", + "Oxygen [Partial pressure] in Arterial blood 98.6848\n", + "pH of Arterial blood 98.6848\n", + "Carbon dioxide [Partial pressure] in Arterial blood 98.6848\n", + "Abuse Status [OMAHA] 98.5301\n", + "Housing status 98.5301\n", + "HIV status 98.5301\n", + "Are you covered by health insurance or some other kind of health care plan [PhenX] 98.5301\n", + "Total Bilirubin (Elevated) 98.3311\n", + "Red Blood Cell 98.3311\n", + "RBC Distribution Width 98.3311\n", + "MCV 98.3311\n", + "Platelet Count 98.3311\n", + "Anion Gap 98.3311\n", + "White Blood Cell (Elevated) 98.3311\n", + "Influenza virus B Ag [Presence] in Nasopharynx by Rapid immunoassay 98.3201\n", + "Influenza virus A Ag [Presence] in Nasopharynx by Rapid immunoassay 98.3201\n", + "Oxygen Saturation 98.2427\n", + "Gram positive blood culture panel by Probe in Positive blood culture 98.2427\n", + "Mean blood pressure 98.2427\n", + "Lactate [Mass/volume] in Blood 98.2427\n", + "Capillary refill [Time] of Nail bed 98.2427\n", + "Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain 97.8117\n", + "Prothrombin time (PT) 97.1706\n", + "Eosinophils/100 leukocytes in Blood by Automated count 97.1706\n", + "Procalcitonin [Mass/volume] in Serum or Plasma 97.1706\n", + "Creatine kinase [Enzymatic activity/volume] in Serum or Plasma 97.1706\n", + "Basophils [#/volume] in Blood by Automated count 97.1706\n", + "INR in Platelet poor plasma by Coagulation assay 97.1706\n", + "Neutrophils/100 leukocytes in Blood by Automated count 97.1706\n", + "Monocytes/100 leukocytes in Blood by Automated count 97.1706\n", + "Monocytes [#/volume] in Blood by Automated count 97.1706\n", + "Lymphocytes/100 leukocytes in Blood by Automated count 97.1706\n", + "Lactate dehydrogenase [Enzymatic activity/volume] in Serum or Plasma by Lactate to pyruvate reaction 97.1706\n", + "Lymphocytes [#/volume] in Blood by Automated count 97.1706\n", + "Eosinophils [#/volume] in Blood by Automated count 97.1706\n", + "Neutrophils [#/volume] in Blood by Automated count 97.1706\n", + "Basophils/100 leukocytes in Blood by Automated count 97.1706\n", + "C reactive protein [Mass/volume] in Serum or Plasma 97.1706\n", + "Fibrin D-dimer FEU [Mass/volume] in Platelet poor plasma 97.1706\n", + "Treatment status Cancer 96.7949\n", + "Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection 96.7396\n", + "American house dust mite IgE Ab in Serum 96.5517\n", + "Latex IgE Ab in Serum 96.5517\n", + "Peanut IgE Ab in Serum 96.5517\n", + "White oak IgE Ab in Serum 96.5517\n", + "Egg white IgE Ab in Serum 96.5517\n", + "Shrimp IgE Ab in Serum 96.5517\n", + "Codfish IgE Ab in Serum 96.5517\n", + "Wheat IgE Ab in Serum 96.5517\n", + "Soybean IgE Ab in Serum 96.5517\n", + "Honey bee IgE Ab in Serum 96.5517\n", + "Cladosporium herbarum IgE Ab in Serum 96.5517\n", + "Cow milk IgE Ab in Serum 96.5517\n", + "Common Ragweed IgE Ab in Serum 96.5517\n", + "Cat dander IgE Ab in Serum 96.5517\n", + "Walnut IgE Ab in Serum 96.5517\n", + "Stage group.clinical Cancer 96.397\n", + "HER2 [Presence] in Breast cancer specimen by Immune stain 96.397\n", + "Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain 96.397\n", + "Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain 96.397\n", + "HER2 [Presence] in Breast cancer specimen by FISH 96.397\n", + "Response to cancer treatment 96.2312\n", + "Smokes tobacco daily 96.1096\n", + "SARS-CoV-2 RNA Pnl Resp NAA+probe 95.0597\n", + "FEV1/FVC 93.3245\n", + "Drugs of abuse 5 panel - Urine by Screen method 89.2352\n", + "DXA [T-score] Bone density 88.7821\n", + "Hematocrit [Volume Fraction] of Blood 87.2679\n", + "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method 85.1569\n", + "Polyp size greatest dimension by CAP cancer protocols 85.1569\n", + "US Guidance for biopsy of Prostate 81.1561\n", + "Clarity of Urine 81.0234\n", + "Bilirubin.total [Mass/volume] in Urine by Test strip 81.0234\n", + "Protein [Presence] in Urine by Test strip 81.0234\n", + "Ketones [Presence] in Urine by Test strip 81.0234\n", + "Color of Urine 81.0234\n", + "Leukocyte esterase [Presence] in Urine by Test strip 81.0234\n", + "Nitrite [Presence] in Urine by Test strip 81.0234\n", + "pH of Urine by Test strip 81.0234\n", + "Protein [Mass/volume] in Urine by Test strip 81.0234\n", + "Ketones [Mass/volume] in Urine by Test strip 81.0234\n", + "Glucose [Presence] in Urine by Test strip 81.0234\n", + "Specific gravity of Urine by Test strip 81.0234\n", + "Glucose [Mass/volume] in Urine by Test strip 81.0234\n", + "Appearance of Urine 81.0234\n", + "Hemoglobin [Presence] in Urine by Test strip 81.0234\n", + "Microalbumin Creatinine Ratio 77.542\n", + "Prostate specific Ag [Mass/volume] in Serum or Plasma 75.0663\n", + "Functional capacity NYHA 73.9943\n", + "Objective assessment of cardiovascular disease NYHA 73.9943\n", + "Left ventricular Ejection fraction 73.519\n", + "Iron saturation [Mass Fraction] in Serum or Plasma 73.4637\n", + "Iron binding capacity [Mass/volume] in Serum or Plasma 73.4637\n", + "Magnesium [Mass/volume] in Serum or Plasma 73.4637\n", + "NT-proBNP 73.4637\n", + "Iron [Mass/volume] in Serum or Plasma 73.4637\n", + "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method 70.6897\n", + "Ferritin [Mass/volume] in Serum or Plasma 70.6897\n", + "Erythrocyte distribution width [Ratio] by Automated count 70.6897\n", + "Oxygen saturation in Arterial blood 70.2697\n", + "Chloride [Moles/volume] in Serum or Plasma 69.1866\n", + "Glucose [Mass/volume] in Serum or Plasma 69.1866\n", + "Carbon Dioxide 69.1866\n", + "Urea nitrogen [Mass/volume] in Serum or Plasma 69.1866\n", + "Calcium [Mass/volume] in Serum or Plasma 69.1866\n", + "Globulin [Mass/volume] in Serum by calculation 61.0522\n", + "Body temperature 48.4195\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma 39.0141\n", + "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma 38.141\n", + "Albumin 38.141\n", + "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma 38.141\n", + "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma 38.141\n", + "Glomerular filtration rate/1.73 sq M.predicted 29.1888\n", + "Hemoglobin A1c/Hemoglobin.total in Blood 23.1101\n", + "Chloride 13.2294\n", + "Glucose 13.2294\n", + "Urea Nitrogen 13.2294\n", + "Calcium 13.2294\n", + "Sodium 12.1905\n", + "Creatinine 12.1905\n", + "Potassium 12.1905\n", + "Erythrocyte distribution width [Entitic volume] by Automated count 0.939434\n", + "Platelet mean volume [Entitic volume] in Blood by Automated count 0.939434\n", + "Hematocrit [Volume Fraction] of Blood by Automated count 0.862069\n", + "Platelets [#/volume] in Blood by Automated count 0.851017\n", + "MCV [Entitic volume] by Automated count 0.851017\n", + "MCHC [Mass/volume] by Automated count 0.851017\n", + "Erythrocytes [#/volume] in Blood by Automated count 0.851017\n", + "MCH [Entitic mass] by Automated count 0.851017\n", + "Leukocytes [#/volume] in Blood by Automated count 0.851017\n", + "Hemoglobin [Mass/volume] in Blood 0.806808\n", + "Heart rate 0.0552608\n", + "Diastolic Blood Pressure 0.0552608\n", + "Body Mass Index 0.0552608\n", + "Systolic Blood Pressure 0.0552608\n", + "Respiratory rate 0.0552608\n", + "Total Cholesterol 0.0552608\n", + "Low Density Lipoprotein Cholesterol 0.0552608\n", + "High Density Lipoprotein Cholesterol 0.0552608\n", + "Tobacco smoking status NHIS 0.0552608\n", + "Triglycerides 0.0552608\n", + "Pain severity - 0-10 verbal numeric rating [Score] - Reported 0.0442087\n" + ] + } + ], + "source": [ + "null_values = df2.isnull().sum()\n", + "null_values = null_values[null_values > 0]\n", + "null_values = 100 * null_values / len(df2)\n", + "null_values = null_values.sort_values(ascending=False)\n", + "null_values_df = null_values.reset_index()\n", + "null_values_df.columns = ['Column', 'Null Values Percentage']\n", + "print(tabulate(null_values_df, headers='keys', tablefmt='simple', showindex=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['Take blood sample', 'Incision of trachea (procedure)',\n", + " 'Intravenous antibiotic therapy', 'Sputum Culture',\n", + " 'Bee venom (substance)', 'Infection caused by Staphylococcus aureus',\n", + " 'Intravenous infusion (procedure)',\n", + " 'History of upper limb amputation (situation)', 'Cystic Fibrosis',\n", + " 'Body mass index 40+ - severely obese (finding)', 'Sweat Test',\n", + " '0.67 ML anakinra 149 MG/ML Prefilled Syringe',\n", + " 'canagliflozin 100 MG Oral Tablet',\n", + " 'History of disarticulation at wrist (situation)',\n", + " 'Diabetes from Cystic Fibrosis',\n", + " 'Sepsis caused by Pseudomonas (disorder)',\n", + " 'Suicidal deliberate poisoning', 'Pancreatin 600 MG Oral Tablet',\n", + " '20 Gene mutation test', 'Total replacement of hip', 'Lung Transplant',\n", + " 'Sepsis caused by Staphylococcus aureus',\n", + " 'Vancomycin 50 MG/ML Injectable Solution',\n", + " 'Oral Glucose Tolerance Test'],\n", + " dtype='object')\n" + ] + } + ], + "source": [ + "# drop columns with only null values\n", + "null_columns = df2.columns[df2.isnull().all()]\n", + "print(null_columns)\n", + "df2.dropna(axis=1, how='all', inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "177" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(df2.columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Encoding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Age " + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "df_one_hot = pd.get_dummies(df2['age'], prefix='age')\n", + "df2 = pd.concat([df2, df_one_hot], axis=1)\n", + "df2['age_30t50'] = df2['age_30t50'].astype(int)\n", + "df2['age_50t70'] = df2['age_50t70'].astype(int)\n", + "df2['age_gt70'] = df2['age_gt70'].astype(int)\n", + "df2.drop(columns=['age'], inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Columns with normal/abnormal values" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma\n", + "Albumin\n", + "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma\n", + "American house dust mite IgE Ab in Serum\n", + "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma\n", + "Bilirubin.total [Mass/volume] in Urine by Test strip\n", + "Body Mass Index\n", + "Body temperature\n", + "Calcium\n", + "Calcium [Mass/volume] in Serum or Plasma\n", + "Carbon Dioxide\n", + "Cat dander IgE Ab in Serum\n", + "Chloride\n", + "Chloride [Moles/volume] in Serum or Plasma\n", + "Cladosporium herbarum IgE Ab in Serum\n", + "Codfish IgE Ab in Serum\n", + "Common Ragweed IgE Ab in Serum\n", + "Cow milk IgE Ab in Serum\n", + "Creatinine\n", + "DXA [T-score] Bone density\n", + "Diastolic Blood Pressure\n", + "Egg white IgE Ab in Serum\n", + "Erythrocyte distribution width [Entitic volume] by Automated count\n", + "Erythrocyte distribution width [Ratio] by Automated count\n", + "Erythrocytes [#/volume] in Blood by Automated count\n", + "FEV1/FVC\n", + "Ferritin [Mass/volume] in Serum or Plasma\n", + "Globulin [Mass/volume] in Serum by calculation\n", + "Glomerular filtration rate/1.73 sq M.predicted\n", + "Glucose\n", + "Glucose [Mass/volume] in Serum or Plasma\n", + "Glucose [Mass/volume] in Urine by Test strip\n", + "Heart rate\n", + "Hematocrit [Volume Fraction] of Blood\n", + "Hematocrit [Volume Fraction] of Blood by Automated count\n", + "Hemoglobin A1c/Hemoglobin.total in Blood\n", + "Hemoglobin [Mass/volume] in Blood\n", + "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method\n", + "High Density Lipoprotein Cholesterol\n", + "Honey bee IgE Ab in Serum\n", + "Iron [Mass/volume] in Serum or Plasma\n", + "Iron binding capacity [Mass/volume] in Serum or Plasma\n", + "Iron saturation [Mass Fraction] in Serum or Plasma\n", + "Lactate [Mass/volume] in Blood\n", + "Latex IgE Ab in Serum\n", + "Left ventricular Ejection fraction\n", + "Leukocytes [#/volume] in Blood by Automated count\n", + "Low Density Lipoprotein Cholesterol\n", + "MCH [Entitic mass] by Automated count\n", + "MCHC [Mass/volume] by Automated count\n", + "MCV [Entitic volume] by Automated count\n", + "Magnesium [Mass/volume] in Serum or Plasma\n", + "Mean blood pressure\n", + "Microalbumin Creatinine Ratio\n", + "NT-proBNP\n", + "Oxygen Saturation\n", + "Oxygen saturation in Arterial blood\n", + "Pain severity - 0-10 verbal numeric rating [Score] - Reported\n", + "Peanut IgE Ab in Serum\n", + "Platelet mean volume [Entitic volume] in Blood by Automated count\n", + "Platelets [#/volume] in Blood by Automated count\n", + "Polyp size greatest dimension by CAP cancer protocols\n", + "Potassium\n", + "Prostate specific Ag [Mass/volume] in Serum or Plasma\n", + "Protein [Mass/volume] in Urine by Test strip\n", + "Respiratory rate\n", + "Shrimp IgE Ab in Serum\n", + "Sodium\n", + "Soybean IgE Ab in Serum\n", + "Specific gravity of Urine by Test strip\n", + "Systolic Blood Pressure\n", + "Thyrotropin [Units/volume] in Serum or Plasma\n", + "Thyroxine (T4) free [Mass/volume] in Serum or Plasma\n", + "Total Cholesterol\n", + "Triglycerides\n", + "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method\n", + "US Guidance for biopsy of Prostate\n", + "Urea Nitrogen\n", + "Urea nitrogen [Mass/volume] in Serum or Plasma\n", + "Walnut IgE Ab in Serum\n", + "Wheat IgE Ab in Serum\n", + "White oak IgE Ab in Serum\n", + "pH of Urine by Test strip\n" + ] + } + ], + "source": [ + "n_abn_columns = []\n", + "for col in df2.columns:\n", + " if df2[col].isin(['normal', 'abnormal']).any():\n", + " n_abn_columns.append(col)\n", + "n_abn_columns.sort()\n", + "for col in n_abn_columns:\n", + " print(col)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How many null values are in these columns?" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column Null Values Percentage\n", + "------------------------------------------------------------------------------ ------------------------\n", + "Thyroxine (T4) free [Mass/volume] in Serum or Plasma 99.4695\n", + "Thyrotropin [Units/volume] in Serum or Plasma 99.4695\n", + "Mean blood pressure 98.2427\n", + "Oxygen Saturation 98.2427\n", + "Lactate [Mass/volume] in Blood 98.2427\n", + "Honey bee IgE Ab in Serum 96.5517\n", + "Latex IgE Ab in Serum 96.5517\n", + "Peanut IgE Ab in Serum 96.5517\n", + "Egg white IgE Ab in Serum 96.5517\n", + "Cow milk IgE Ab in Serum 96.5517\n", + "Common Ragweed IgE Ab in Serum 96.5517\n", + "Codfish IgE Ab in Serum 96.5517\n", + "Cladosporium herbarum IgE Ab in Serum 96.5517\n", + "Shrimp IgE Ab in Serum 96.5517\n", + "Cat dander IgE Ab in Serum 96.5517\n", + "Soybean IgE Ab in Serum 96.5517\n", + "Walnut IgE Ab in Serum 96.5517\n", + "Wheat IgE Ab in Serum 96.5517\n", + "American house dust mite IgE Ab in Serum 96.5517\n", + "White oak IgE Ab in Serum 96.5517\n", + "FEV1/FVC 93.3245\n", + "DXA [T-score] Bone density 88.7821\n", + "Hematocrit [Volume Fraction] of Blood 87.2679\n", + "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method 85.1569\n", + "Polyp size greatest dimension by CAP cancer protocols 85.1569\n", + "US Guidance for biopsy of Prostate 81.1561\n", + "Glucose [Mass/volume] in Urine by Test strip 81.0234\n", + "pH of Urine by Test strip 81.0234\n", + "Protein [Mass/volume] in Urine by Test strip 81.0234\n", + "Specific gravity of Urine by Test strip 81.0234\n", + "Bilirubin.total [Mass/volume] in Urine by Test strip 81.0234\n", + "Microalbumin Creatinine Ratio 77.542\n", + "Prostate specific Ag [Mass/volume] in Serum or Plasma 75.0663\n", + "Left ventricular Ejection fraction 73.519\n", + "Magnesium [Mass/volume] in Serum or Plasma 73.4637\n", + "NT-proBNP 73.4637\n", + "Iron saturation [Mass Fraction] in Serum or Plasma 73.4637\n", + "Iron [Mass/volume] in Serum or Plasma 73.4637\n", + "Iron binding capacity [Mass/volume] in Serum or Plasma 73.4637\n", + "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method 70.6897\n", + "Erythrocyte distribution width [Ratio] by Automated count 70.6897\n", + "Ferritin [Mass/volume] in Serum or Plasma 70.6897\n", + "Oxygen saturation in Arterial blood 70.2697\n", + "Chloride [Moles/volume] in Serum or Plasma 69.1866\n", + "Carbon Dioxide 69.1866\n", + "Calcium [Mass/volume] in Serum or Plasma 69.1866\n", + "Glucose [Mass/volume] in Serum or Plasma 69.1866\n", + "Urea nitrogen [Mass/volume] in Serum or Plasma 69.1866\n", + "Globulin [Mass/volume] in Serum by calculation 61.0522\n", + "Body temperature 48.4195\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma 39.0141\n", + "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma 38.141\n", + "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma 38.141\n", + "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma 38.141\n", + "Albumin 38.141\n", + "Glomerular filtration rate/1.73 sq M.predicted 29.1888\n", + "Hemoglobin A1c/Hemoglobin.total in Blood 23.1101\n", + "Chloride 13.2294\n", + "Urea Nitrogen 13.2294\n", + "Glucose 13.2294\n", + "Calcium 13.2294\n", + "Potassium 12.1905\n", + "Creatinine 12.1905\n", + "Sodium 12.1905\n", + "Erythrocyte distribution width [Entitic volume] by Automated count 0.939434\n", + "Platelet mean volume [Entitic volume] in Blood by Automated count 0.939434\n", + "Hematocrit [Volume Fraction] of Blood by Automated count 0.862069\n", + "Platelets [#/volume] in Blood by Automated count 0.851017\n", + "Erythrocytes [#/volume] in Blood by Automated count 0.851017\n", + "MCV [Entitic volume] by Automated count 0.851017\n", + "MCHC [Mass/volume] by Automated count 0.851017\n", + "MCH [Entitic mass] by Automated count 0.851017\n", + "Leukocytes [#/volume] in Blood by Automated count 0.851017\n", + "Hemoglobin [Mass/volume] in Blood 0.806808\n", + "Respiratory rate 0.0552608\n", + "Diastolic Blood Pressure 0.0552608\n", + "Systolic Blood Pressure 0.0552608\n", + "Total Cholesterol 0.0552608\n", + "Triglycerides 0.0552608\n", + "Body Mass Index 0.0552608\n", + "Low Density Lipoprotein Cholesterol 0.0552608\n", + "Heart rate 0.0552608\n", + "High Density Lipoprotein Cholesterol 0.0552608\n", + "Pain severity - 0-10 verbal numeric rating [Score] - Reported 0.0442087\n" + ] + } + ], + "source": [ + "n_abn_df = df2[n_abn_columns]\n", + "null_values = n_abn_df.isnull().sum()\n", + "null_values = null_values[null_values > 0]\n", + "null_values = 100 * null_values / len(n_abn_df)\n", + "null_values = null_values.sort_values(ascending=False)\n", + "null_values_df = null_values.reset_index()\n", + "null_values_df.columns = ['Column', 'Null Values Percentage']\n", + "print(tabulate(null_values_df, headers='keys', tablefmt='simple', showindex=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Many of them have > 90 % null values. We will drop them." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of columns to drop: 21\n" + ] + } + ], + "source": [ + "null_values_cols = []\n", + "for col in n_abn_columns:\n", + " if df2[col].isnull().sum()/len(df2) > 0.9:\n", + " null_values_cols.append(col)\n", + "print('Number of columns to drop:', len(null_values_cols))\n", + "df2.drop(columns=null_values_cols, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['American house dust mite IgE Ab in Serum',\n", + " 'Cat dander IgE Ab in Serum',\n", + " 'Cladosporium herbarum IgE Ab in Serum',\n", + " 'Codfish IgE Ab in Serum',\n", + " 'Common Ragweed IgE Ab in Serum',\n", + " 'Cow milk IgE Ab in Serum',\n", + " 'Egg white IgE Ab in Serum',\n", + " 'FEV1/FVC',\n", + " 'Honey bee IgE Ab in Serum',\n", + " 'Lactate [Mass/volume] in Blood',\n", + " 'Latex IgE Ab in Serum',\n", + " 'Mean blood pressure',\n", + " 'Oxygen Saturation',\n", + " 'Peanut IgE Ab in Serum',\n", + " 'Shrimp IgE Ab in Serum',\n", + " 'Soybean IgE Ab in Serum',\n", + " 'Thyrotropin [Units/volume] in Serum or Plasma',\n", + " 'Thyroxine (T4) free [Mass/volume] in Serum or Plasma',\n", + " 'Walnut IgE Ab in Serum',\n", + " 'Wheat IgE Ab in Serum',\n", + " 'White oak IgE Ab in Serum']" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "null_values_cols" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rest of them will be encoded using get_dummies." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "n_abn_columns = [col for col in n_abn_columns if col not in null_values_cols]\n", + "df2 = pd.get_dummies(df2, columns=n_abn_columns, prefix_sep='_', dtype=int)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other non-numeric columns will be encoded using get_dummies." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Appearance of Urine\n", + "[nan 'cloudy']\n", + "Functional capacity NYHA\n", + "[nan 'classii' 'classiii' 'classi' 'classiv']\n", + "White Blood Cell (Elevated)\n", + "[ nan 11.6 12.9 13.3 14.1 14.5 12.3 11.4 14. 13.7 13.9 14.2 12.4 14.3\n", + " 12. 12.8 11.7 12.1 13.5 14.4 14.6 13.2 14.8 13.6 11.9 11.8 11.5 12.2\n", + " 13.8 13.4 11.3 15. 12.7 11.1 14.7 12.6 13. 11.2 14.9 12.5]\n", + "Color of Urine\n", + "[nan 'reddish' 'brown']\n", + "Objective assessment of cardiovascular disease NYHA\n", + "[nan 'minimal' 'severe' 'mod-severe']\n", + "Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative']\n", + "Abuse Status [OMAHA]\n", + "[nan 'no' 'severe']\n", + "Stage group.clinical Cancer\n", + "[nan 'earlystage' 'latestage']\n", + "Housing status\n", + "[nan 'homeless']\n", + "Capillary refill [Time] of Nail bed\n", + "[nan 'increased']\n", + "Smokes tobacco daily\n", + "[nan True]\n", + "Platelet Count\n", + "[ nan 162.1 291.7 444. 411. 368.2 250. 217.9 178.7 292.5 428.9 254.8\n", + " 423.7 427.7 306.4 421.5 340.9 227.8 322.3 192.7 323.4 440.8 349.8 429.9\n", + " 328.2 374.3 228.3 204.6 308.6 200.3 429.3 174.3 155.7 329.5 173.6 204.9\n", + " 260.9 420.7 356.7 449.9 387.3 171.6 440.4 384.8 417.1 186. 396.8 307.1\n", + " 239.1 175.1 234.4 268. 331.7 326.5 324.6 391.3 336.6 210.8 348.6 407.5\n", + " 417.6 198.2 226.9 231.5 243.1 378.9 325.2 446.3 266.9 244.4 371. 442.4\n", + " 432.1 258.9 214.5 264.5 335. 338.2 444.9 278.5 211.3 385.1 350.5 290.1\n", + " 248. 421.3 448.4 304.1 265.8 184.5 281.8 434.9 291.9 297.8 205.6 191.5\n", + " 293.7 287. 327. 249.9 412.8 346.9 422.3 320.4 155.4 173.3 339.4 402.8\n", + " 394.8 182.9 185.9 299.4 252.4 265.1 155.3 299.9 212.9 344.8 428.8 405.8\n", + " 298.4 385.8 257.1 439.4 210.5 254.2 303.7 283.6 329.8 162.3 317. 365.6\n", + " 273.4 447.5 209.6 196.1 415.3 197.6 295. 357.9 342.9 266. 224.8 181.3\n", + " 424.9 265.2 303.6 162.8 367.1]\n", + "Nitrite [Presence] in Urine by Test strip\n", + "[nan 'negative']\n", + "Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain\n", + "[nan 'positive' 'negative']\n", + "Anion Gap\n", + "[ nan 9.4 7.2 9.5 13.2 3.5 11.8 3.4 2.4 8.1 4.9 2.3 12.1 4.6\n", + " 7.6 7.7 5.6 10.7 4.1 10.2 11.4 12.2 7.5 13.9 6.7 6.4 6.9 13.6\n", + " 10.1 3.1 3.9 13.3 5.3 4.5 12. 6.2 11.3 8.9 10.5 10.6 11.9 5.8\n", + " 12.6 11.6 14.9 8.7 11.1 12.5 4.3 10. 2.1 5.5 14. 11. 14.7 8.5\n", + " 12.3 14.1 5.9 6.1 2. 7.1 3.7 5.4 13.8 8.8 10.3 2.7 11.7 2.8\n", + " 5. 10.8 9. 9.9 14.3 12.7 14.8 7. 9.1 9.8 8.2 5.2 8.3 4.8\n", + " 12.8 6.3 8.4 7.3 11.2 7.9 13.4 4. 6. 3.3 3.6]\n", + "Influenza virus B Ag [Presence] in Nasopharynx by Rapid immunoassay\n", + "[nan False True]\n", + "C reactive protein [Mass/volume] in Serum or Plasma\n", + "[ nan 10.27 9.87 10.57 10.13 10.18 9.84 10.23 10.08 10.73 10.42 10.32\n", + " 12.84 9.42 10.14 9.77 10.01 9.89 14.09 9.98 13.15 10.7 9.9 13.43\n", + " 10.21 13.54 9.78 9.66 10.64 12.89 10.31 10.4 9.7 13.09 10.05 10.45\n", + " 9.94 10.24 10.38 10.06 10.26 10.37 10.17 13.56 13.03 9.6 10.6 9.51\n", + " 9.32 13.57 10.9 10.8 10.36 10.78 9.4 9.48 12.45 9.14 10.3 10.1\n", + " 9.86 9.88 13.16 10.44 13.64 10.02 9.93 9.68 10.04 9.8 9.76 10.11\n", + " 10.69 10.22 9.3 13.39 9.96 8.91 10.03 9.83 11.2 13.74 9.08 9.63\n", + " 10.49 9.52 10.07 10.58 12.49 9.91 10.43 10.34 9.65 10.52 9.62 9.54\n", + " 13.82 10.96 9.43 10.83 10.59 9.5 10.09 10.2 9.58 12.9 9.1 11.\n", + " 10.76 10.16 9.69 9.64 12.21 9.46 12.94 9.67 12.46 11.28 10.84 9.06\n", + " 10.85 10.72 9.82 10.63 15.4 9.56 9.27 9.47 9.72 9.11 10.91 9.24\n", + " 10.54 10.95 10.47 9.92 13.67 9.44 12.6 9.04 13.07 9.13 9.19 9.15\n", + " 9.81 9.73 9.97 13.1 12.3 13.14 10.39 11.14 14.45 10.12 13.11 12.82\n", + " 10.28 9.57 12.09]\n", + "Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative']\n", + "Fibrin D-dimer FEU [Mass/volume] in Platelet poor plasma\n", + "[ nan 0.42 0.47 0.43 0.38 0.45 0.4 0.34 11.01 0.56 5.2 11.35\n", + " 0.44 7.23 11.38 0.46 8.89 11.76 0.36 0.51 2.12 7.67 7.83 6.51\n", + " 0.49 6.52 0.53 10.17 0.41 10.02 0.39 0.37 13.81 13.34 0.5 7.94\n", + " 0.54 0.35 10.14 8.09 1.96 0.3 6.45 10.19 12.61 8.73 1.43 4.95\n", + " 1.73 1.37 0.32 9.84 8.56 1.5 9.88 11.7 14.05 5.89 0.55 7.09]\n", + "label\n", + "[0 1]\n", + "Oxygen/Inspired gas setting [Volume Fraction] Ventilator\n", + "[ nan 69.41 65.75 60.01 59.06 77.46 67.87 73.69 63.76 57.75 56.91 71.23\n", + " 68.25 63.79 61.4 60.19 69.44 65.89 61.81 70.96 68.06 61.94 62.55 60.05\n", + " 61.73 59.5 62.46 66.76 71.5 66.16 68.96 64.94 65.71 71.08 64.1 59.46\n", + " 70.17 60.64 55.96 63.64 59.38 61.76 66.34 64.53 60.16 61.69 71.42 71.07\n", + " 54.98 65.87 59.32 66.7 72.12 63.82 68.18 63.61 60.77 70.26 59.45 64.42\n", + " 59.19 65.42 59.85 57.18 71.11 64.75 66.46 56.26 55.83 64.61 69.65 58.36\n", + " 68.37 68.27 75.45 58.97 62.9 64.13 66.98 61.06 62.16 69.7 70.94 69.67\n", + " 64.85 70.65 54.01 67.29 62.26 54.76 61.66 60.95 70.62 61.7 61.24 56.48\n", + " 65.92 70.51 56.17 72. 68.82 75.88 66.49 54.43 64.93 62.64 63.55 68.23\n", + " 66.55 66.3 68.28 73.22 65.82 61.49]\n", + "HER2 [Presence] in Breast cancer specimen by Immune stain\n", + "[nan 'positive' 'negative']\n", + "Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative']\n", + "INR in Platelet poor plasma by Coagulation assay\n", + "[ nan 2.05 1.95 2.17 2.12 1.82 1.77 2.25 1.39 3.9 1.97 1.84 2.38 2.63\n", + " 1.76 3.99 4.08 2.08 1.79 3.8 2.01 3.98 2.3 1.64 4. 1.94 2.04 2.\n", + " 4.2 1.62 2.23 2.1 2.02 1.88 3.82 1.34 2.24 1.65 4.1 4.04 1.81 1.89\n", + " 2.16 3.81 2.22 2.54 2.37 1.86 2.11 4.14 2.21 2.41 1.83 2.14 4.27 2.07\n", + " 3.91 2.18 1.87 1.63 1.72 3.97 2.2 1.61 1.7 1.55 2.06 1.59 3.73 1.68\n", + " 1.78 1.92 2.13 2.26 1.56 1.93 1.8 2.28 4.03 1.58 2.44 1.85 3.78 1.98\n", + " 1.66 1.96 3.89 2.27 1.71 3.94 1.73 1.9 1.6 3.83 2.15 2.32 2.36 2.33\n", + " 2.6 4.36 1.67 3.85 2.43 2.58 2.48 2.29 4.09 4.07 3.95 1.91 3.86 3.75\n", + " 4.16 3.79]\n", + "Protein [Presence] in Urine by Test strip\n", + "[nan '3+' '1+' '2+']\n", + "MCV\n", + "[ nan 92.6 94.3 93.5 82.1 91.4 90.9 88.4 88.2 89.2 92.7 91.5 89.1 83.1\n", + " 85.9 85.3 89.5 90.4 87.5 91.3 90.5 83.6 81.7 82.5 85.5 88. 93.4 81.5\n", + " 81.8 92.2 91.1 88.6 80.6 94. 87.1 82.2 88.5 82.8 85.2 81.3 81.2 83.7\n", + " 95.2 82.3 95.9 80.1 95.6 80.2 84.2 92.4 90.1 87.4 84.3 90.7 84.9 84.4\n", + " 85.4 91.7 94.1 91.9 80.7 83.8 88.8 94.5 91.8 89.6 84.5 95.8 95.3 91.2\n", + " 86.8 93.1 90.2 87.2 93.9 81.4 82.4 89.4 87. 93.3 82. 80.9 90.3 93.2\n", + " 88.9 86.5 87.8 96. 83. 87.6 93.8 89. 84.7 88.1 80. 85.1 86.2 86.3]\n", + "HIV status\n", + "[nan 'negative' 'positive']\n", + "Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain\n", + "[nan 'positive' 'negative']\n", + "Basophils [#/volume] in Blood by Automated count\n", + "[ nan 0.32 0.3 0.33 0.31 0.28 0.29 0.27 0.34 0.26 0.25 0.24 0.35]\n", + "Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative']\n", + "Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative']\n", + "Clarity of Urine\n", + "[nan 'cloudy' 'translucent']\n", + "Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative' 'positive']\n", + "Response to cancer treatment\n", + "[nan 'improving' 'worsening']\n", + "Ketones [Mass/volume] in Urine by Test strip\n", + "[nan 'low' 'medium']\n", + "Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative']\n", + "Procalcitonin [Mass/volume] in Serum or Plasma\n", + "[ nan 0.08 0.07 0.13 0.14 0.1 0.12 0.24 0.09 0.2 0.32 0.19 0.22 0.16\n", + " 0.26 0.17 0.06 0.28 0.04 0.3 0.21 0.11 0.05 0.25 0.15 0.02 0.27 0.29\n", + " 0.37 0.23 0.18]\n", + "Ketones [Presence] in Urine by Test strip\n", + "[nan '3+' 'trace' '1+' '2+']\n", + "Creatine kinase [Enzymatic activity/volume] in Serum or Plasma\n", + "[ nan 27.88 38.47 38.32 38.02 36.5 36.83 25.42 36.82 38.51\n", + " 35.18 35.33 104.54 32.64 32.87 23.1 31.18 123.83 21. 124.27\n", + " 27. 35.97 26.14 161.34 31.8 99.11 33.87 38.3 32.81 123.23\n", + " 29.99 41.63 34.07 34.51 28.3 120.23 35. 38.64 26.73 25.94\n", + " 26.63 32.18 108.32 24.08 42.39 37.18 31.35 115.12 116.18 43.\n", + " 33.08 32.89 19.72 32.1 53.88 38.34 40. 34.94 27.25 31.74\n", + " 34.04 27.6 32.73 93.33 31.36 34.87 29.13 26.27 32.3 107.05\n", + " 30.26 131.25 24.93 29.87 37.72 32.58 28.88 31.94 41.44 32.22\n", + " 39.07 38.54 30.7 36.6 28.14 111.28 39.2 30.39 109.73 25.8\n", + " 35.36 28.46 31.52 29.41 22.06 32.42 125.7 40.54 34.06 30.24\n", + " 31.66 37.37 35.38 27.78 35.93 148.09 28.72 28.93 34.83 30.29\n", + " 27.61 30.13 33.99 27.91 33.94 25.72 31.28 28.32 40.28 35.77\n", + " 29.05 33.63 125.73 26.94 20.26 32.96 32.5 42.57 37.21 30.76\n", + " 30.47 26.12 36.66 135.96 33.88 20.98 30.44 32.98 23.98 38.96\n", + " 41.26 29.7 33.14 36.42 118.72 33.06 33.32 43.54 22.91 29.56\n", + " 105.54 31.08 21.3 40.77 36. 37.04 38.74 33.37 128.96 118.76\n", + " 33.79 25.24 36.73 39.36 34.95 27.52 35.9 35.99 31.84 26.67\n", + " 105.27 34.86 36.09 29.28 38.12 30.55 30.3 98.22 34.67 38.36\n", + " 34.24 36.51 29.45 37.57 36.23 27.63 26.39 33.21 39.1 30.64\n", + " 145.97 28.58 37.44 132.17 27.64 28.96 38.53 27.86 113.06 29.4\n", + " 31.34 31.23 40.85 35.51 37.92 20.72 138.17 30.72 30.33 26.78\n", + " 30.58 33.49 34.44 27.31 35.85 30.2 25.44 37.77 32.47 38.22\n", + " 36.2 36.94 104.26 129.87 92.5 31.72 32.08 33.23 107.88 31.62\n", + " 97.99 102.82 35.46 22.35 40.66 35.7 113.65 41.33 35.91 114.33]\n", + "HER2 [Presence] in Breast cancer specimen by FISH\n", + "[nan 'positive' 'negative']\n", + "Treatment status Cancer\n", + "[nan 'changed']\n", + "Total Bilirubin (Elevated)\n", + "[nan 2.4 1.3 1.9 2.2 1.6 2.3 1.7 1.2 1.4 1.5 2.5 2.1 2. 1.8]\n", + "Are you covered by health insurance or some other kind of health care plan [PhenX]\n", + "[nan 'yes' 'no']\n", + "Prothrombin time (PT)\n", + "[ nan 11.93 11.5 11.85 11.88 12.02 11.32 11.68 11.54 11.74 11.07 12.48\n", + " 11.27 11.78 11.86 11.57 12.46 12.39 11.14 10.93 11.61 12.83 10.87 12.65\n", + " 11.47 11.73 12.38 12.29 11.43 11.7 12.44 11.83 12.24 11.52 11.82 12.34\n", + " 12.12 13.21 11.94 11.49 10.83 11.44 12.71 12.1 11.34 12.06 11.9 11.17\n", + " 11.84 11.04 11.63 11.23 11.77 10.96 12.87 11.59 12.57 11.4 11.42 12.26\n", + " 10.84 11.48 11.37 12.6 12.59 11.81 11.99 12.07 11.26 11.66 12.28 11.21\n", + " 11.53 11.22 10.6 11.8 11.87 11.33 11.39 11.38 11.18 12. 11.55 11.65\n", + " 11.96 12.78 11.3 11.92 10.97 11.28 11.24 11.46 12.13 11.62 11.06 11.76\n", + " 11.36 12.7 11.2 11.6 12.73 11.98 10.86 11.29 11.67 12.18 12.55 11.79\n", + " 12.05 11.71 11.19 12.4 11.75 12.79 11.02 11.09 11.41 13. 11.13 12.8\n", + " 11.89 10.98 11.16 10.99 12.04 12.89 12.2 12.98 11.05 10.92 12.45 11.12\n", + " 12.19]\n", + "Monocytes/100 leukocytes in Blood by Automated count\n", + "[ nan 10.06 9.52 9.73 10.04 10.92 11.15 9.18 11.04 10.54 7.97 9.82\n", + " 9.13 9.89 8.93 10.32 10.97 8.59 10.18 10.11 10.26 9.35 8.73 11.22\n", + " 10.56 10.52 10.3 9.56 10.76 10.07 10.12 10.79 10.36 9.42 10.13 10.29\n", + " 11.27 10.5 9.87 9.34 9.07 11.43 9.41 10.82 10.34 9.75 10.03 11.16\n", + " 10.55 10.64 8.96 10.17 10.94 9.39 9.8 10.2 9.78 10.45 8.36 9.1\n", + " 9.74 11.3 11.34 9.9 9.99 9.94 9.48 10.91 11.39 10.42 10.58 10.37\n", + " 11.73 10.68 9.58 9.86 9.79 7.91 10.02 10.22 9.71 10.81 8.79 10.41\n", + " 9.62 11.91 10.75 9.43 9.36 9.61 9.84 11.44 10.47 10.08 9.98 10.1\n", + " 9.01 10.71 11.25 9.29 9.88 9.7 9.32 10.31 8.92 9.4 9.95 9.93\n", + " 10.83 11.29 9.3 11.2 8.97 9.02 9.66 10.27 10.46 11.08 10.72 10.51\n", + " 9.44 11.13 9.91 9.22 9.72 9.92 10.39 9.83 9.24 11.17 9.64 9.12\n", + " 8.94 8.55 10.62 8.06 10.44 9.31 10.14 11. 8.81 8.71 9.27 9.26\n", + " 8.12 11.72 11.28 12.27 9.76 8.89 8.9 9.2 10.7 10.73 9.67 10.\n", + " 10.25 9.25 11.1 10.43 9.6 9.14 10.78 9.53 10.74 10.57]\n", + "Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative']\n", + "Leukocyte esterase [Presence] in Urine by Test strip\n", + "[nan 'negative']\n", + "marital\n", + "['m' 's']\n", + "Monocytes [#/volume] in Blood by Automated count\n", + "[ nan 0.96 0.75 0.9 0.94 1.02 0.98 0.99 1. 0.8 0.93 1.03 0.87 1.05\n", + " 0.82 0.89 1.06 0.81 0.95 0.88 1.01 0.91 0.97 0.86 0.92 1.16 1.11 1.04\n", + " 1.08 0.85 1.09 0.76 0.84 1.07 0.78 1.1 1.12 0.83]\n", + "scc\n", + "[101 110 127 129 69 111 76 105 106 119 103 63 55 107 112 59 32 90\n", + " 83 123 66 117 116 46 141 86 100 113 102 108 115 124 109 104 99 150\n", + " 126 52 98 139 120 89 118 61 114 65 62 145 136 137 58 74 71 97\n", + " 68 96 87 122 128 54 130 60 133 73 121 132 138 53 149 72 51 57\n", + " 47 134 140 143 82 91 135 75 80 146 151 131 64 67 125 50 48 34\n", + " 93 43 142 153 156 70 78 77 160 170 49 88 81 174 158 84 95 79\n", + " 56 169 92 148 161 175 172 44 85 19 41 144 45 40 152 157 147 94\n", + " 35 165 20 177 37 154 21 155 167 166 181 184 42 39 164 190 38 14\n", + " 168 171 9 29 159 28]\n", + "gender\n", + "['m' 'f']\n", + "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection\n", + "[nan 'negative' 'positive']\n", + "Neutrophils/100 leukocytes in Blood by Automated count\n", + "[ nan 27.85 26.78 30.78 27.69 28.91 27.15 25.12 28.56 26.64 28.4 28.97\n", + " 25.21 31.12 29.06 25.02 28.81 27.83 27.08 31.5 31.13 31.79 24.54 28.34\n", + " 26.81 25.62 30.44 27.99 27.51 26.36 28.83 28.12 30.79 30.1 31.76 23.98\n", + " 28.86 25.46 29.87 30.72 24.72 22.8 24.62 29.57 27.12 25.91 28.03 29.72\n", + " 27.49 24.13 27.52 34.85 18.61 29.81 26.97 32.32 25.65 27.28 28.28 24.21\n", + " 28.29 28.32 31.44 29.19 24.99 29.66 27.18 27.94 23.81 18.64 26.61 25.34\n", + " 33.41 26.1 28.01 29.07 31.42 32.06 31.99 26.06 29.39 23.64 29.5 24.53\n", + " 28.39 28.02 26.49 29.86 23.38 22.51 33.83 29.04 23.37 32.04 27.07 30.24\n", + " 31.2 28.47 20.61 23.27 22.17 29.63 32.88 26.32 28.93 23.96 27.75 31.59\n", + " 22.96 28.16 30.71 22.11 28.61 23.6 27.45 27.79 25.17 27.71 29.1 24.7\n", + " 27.66 29.49 23.86 28.92 25.22 31.06 29.65 29.89 25.99 23.01 25.45 33.02\n", + " 32.29 26.09 24.16 20.5 26.77 24.66 28.2 30.37 30.21 30.19 22.86 27.56\n", + " 30.51 25.53 28.49 33.92 23.08 28.74 22.85 27.39 29.51 26.52 26.47 31.7\n", + " 28.69 25.33 26.14 29.16 25.01 31.38 22.66 31.86 25.69 26.08 26.93 28.05\n", + " 26.86 28.53 33.1 24.6 24.46 32.92 29.25 25.18 25.8 28.89 30.32 25.86\n", + " 26.79 27.93 28.68 21.16 33.05 27.47 21.27 26.31 27.2 23.66 25.49 34.77\n", + " 23.54 30.39 29.11 24.69 28.15 21.11 28.43 25.75 26.9 26.34 29.95 29.71\n", + " 22.26 24.79 24.77 24.55 27.14 23.67 25.82 24.47 30.47 29.38 29.94 29.43\n", + " 27.31 28.44 34.19 31.33 28.06 23.83 33.23 31.74 33.8 27.16 25.48]\n", + "Lymphocytes/100 leukocytes in Blood by Automated count\n", + "[ nan 15.09 14.29 15.67 15.57 15.17 16.88 16.07 12.23 14.82 13.94 13.37\n", + " 15.79 15.31 12.33 14.09 16.49 14.18 15.02 13.84 12.7 12.13 14.1 14.7\n", + " 18.52 17.23 17.09 15.84 13.36 15.46 15.12 14.21 17.22 18.47 16.57 16.59\n", + " 15.94 14.58 16.55 13.47 13.24 13.02 17.35 13.64 17.03 14.04 14.06 13.2\n", + " 13.61 16.52 16.46 15.4 14.67 19.64 11.5 15.62 13.91 14.4 14.31 14.03\n", + " 16.13 11.42 15.66 14.25 14.87 12.94 16.65 13.86 13.09 15.58 15.87 13.99\n", + " 16.34 16.38 16.18 15.22 14.26 16.44 14.78 11.04 12.66 17.01 15.95 13.74\n", + " 15.49 17.38 15.33 14.28 18.22 13.69 12.91 19.07 15.14 13.5 16.12 13.45\n", + " 15.47 13.92 15.68 15.63 16.22 15.89 14.46 14.72 13.41 18.5 13.22 13.62\n", + " 17.59 15.54 14.61 18.78 14.41 15.51 14.48 14.91 11.97 17.37 13.54 10.5\n", + " 17.25 16.99 16.48 15.21 16.54 14.53 14.49 15.37 16.79 16.2 17.07 16.43\n", + " 15.64 14.45 14.05 17.12 14.73 15.39 17.36 17.2 15.29 17.08 14.83 14.76\n", + " 14.92 14.44 15.76 10.61 17.75 14.23 14.02 16.98 15.81 18.05 13.89 18.39\n", + " 15.16 20.15 15.41 11. 12.74 14.47 13.55 17.24 15.52 15.98 17.27 17.18\n", + " 15.59 16.32 18.28 16.76 13.49 15.56 10.33 14.5 16.58 15.82 14.66 10.32\n", + " 14.15 16.81 13.52 15.75 14.6 12.36 14.65 12.35 14.63 15.13 14.3 14.74\n", + " 17.05 15.72 15.88 12.77 13.98 14.95 13.38 12.89 13.93 14.77 16.83 17.11\n", + " 17.63 16.7 16.4 16.37 14.89 14.93 13.72 14.24]\n", + "Red Blood Cell\n", + "[nan 5.5 5.4 4.9 4.8 4.7 5.3 5. 5.7 4.6 5.8 5.2 5.9 4.5 5.6 5.1]\n", + "Eosinophils [#/volume] in Blood by Automated count\n", + "[ nan 0.41 0.36 0.4 0.38 0.42 0.32 0.47 0.37 0.43 0.39 0.46 0.34 0.44\n", + " 0.45 0.48 0.35 0.33 0.3 ]\n", + "Tobacco smoking status NHIS\n", + "['former' 'never' nan]\n", + "RBC Distribution Width\n", + "[ nan 12.4 14.4 13.6 12.1 13.5 11.8 13.2 14.5 14.3 12.2 14.6 14.2 12.8\n", + " 13.4 12. 13.9 13.8 12.3 11.6 11.9 12.6 11.7 13.3 13.1 12.9 14. 12.5\n", + " 14.1 12.7 13.7 13. ]\n", + "Basophils/100 leukocytes in Blood by Automated count\n", + "[ nan 3.2 3.05 3.01 2.9 2.95 3.09 2.89 3.16 2.99 3.11 2.57 2.84 2.96\n", + " 3.12 2.85 2.87 2.64 2.77 3.06 3.02 3.04 2.75 2.92 2.66 3.27 2.93 3.28\n", + " 3.13 3.1 3.22 3.14 2.94 3.21 3.19 2.83 3.43 2.76 3.3 3.23 3. 2.91\n", + " 2.86 3.46 3.15 2.98 3.07 3.17 2.79 3.08 2.81 2.88 3.03 2.8 2.78 3.18\n", + " 2.63 3.25 2.68 2.97 2.56 2.74 3.49 2.73 3.34 3.26 3.38 2.65 3.24 2.82\n", + " 3.32 3.31 2.71 3.33 3.29 3.36]\n", + "Gram positive blood culture panel by Probe in Positive blood culture\n", + "[nan 'positive']\n", + "Oxygen [Partial pressure] in Arterial blood\n", + "[ nan 51.12 47.66 46.48 46.73 50.86 46.94 48.78 45.2 49.18 51.67 45.34\n", + " 49.25 45.85 45.67 50.47 48.48 50.48 47.68 49.42 50.88 49.85 45.5 52.16\n", + " 49.49 52.44 47.32 51.72 49.15 50.62 49.89 50.76 48.15 47.25 47.62 52.65\n", + " 50.46 49.28 45.59 50.74 46.21 51.1 46.07 47.76 47.8 48.39 51.85 47.72\n", + " 49.47 48.27 51.13 48.64 47.26 49.61 48.47 44.14 47.54 48.61 50.63 44.49\n", + " 46.43 50.29 46.88 49.34 47.93 50.36 49.38 50.79 49.99 46.85 50.82 48.83\n", + " 47.18 50.11 50.18 48.5 46.03 49.96 48.82 49.55 48.25 47.63 51.36 48.94\n", + " 46.91 48.05 49.56 49.94 48.97 48.12 52.19 47.19 49.6 45.09 47.38 51.84\n", + " 47.11 47.75 49.19 50.25 48.7 48.72 49.37 48.16 48.43 45.03 47.79 50.33\n", + " 47.89 49.95]\n", + "Influenza virus A Ag [Presence] in Nasopharynx by Rapid immunoassay\n", + "[nan False True]\n", + "pH of Arterial blood\n", + "[ nan 7.02 7.03 7.14 7.09 6.99 7.1 7.05 7.11 7.04 7.07 7.06 6.98 7.12\n", + " 7.15 7.01 7. 7.08 7.13 6.96 7.17 6.97]\n", + "Neutrophils [#/volume] in Blood by Automated count\n", + "[ nan 2.33 2.55 2.78 2.88 2.48 2.34 2.86 2.53 2.68 2.58 3.06 2.64 2.66\n", + " 3.26 2.72 2.61 2.47 2.75 2.31 2.69 2.98 2.49 2.74 2.83 2.62 2.08 2.59\n", + " 2.87 2.7 2.73 2.99 2.71 3.04 2.95 2.77 2.52 2.91 2.79 2.56 3.1 2.85\n", + " 2.63 2.18 2.38 2.43 3.08 2.4 2.67 2.93 2.54 2.76 2.89 2.82 2.28 2.25\n", + " 2.5 2.3 3.09 2.46 2.97 2.94 2.81 2.65 2.6 2.92 2.27 2.45 2.96 2.57\n", + " 2.36 2.32 2.26 2.22 2.8 2.84 2.24 2.2 2.39 2.9 2.14 2.51 3.01 3.16\n", + " 3. 3.23 3.24]\n", + "Lymphocytes [#/volume] in Blood by Automated count\n", + "[ nan 1. 1.02 0.97 0.98 1.06 1.03 1.01 0.99 0.56 1.07 0.64 0.59 1.05\n", + " 0.61 1.09 0.58 0.63 0.96 1.04 1.08 0.52 0.6 0.57 0.53 0.65 0.55 0.5\n", + " 0.66 0.62 0.54]\n", + "Lactate dehydrogenase [Enzymatic activity/volume] in Serum or Plasma by Lactate to pyruvate reaction\n", + "[ nan 237.9 230.62 254.82 234.23 247.3 249.74 235.6 233.1 257.67\n", + " 226.88 243.15 362.44 239.37 232.82 239.5 247.96 261.87 339.76 235.82\n", + " 363.56 230.18 252.47 246.86 353.84 263.44 363.18 247.23 246.81 248.03\n", + " 359.35 246.96 251.64 242.28 244.4 240.56 366.12 236.07 250.07 248.62\n", + " 226.72 250.32 232.44 322.02 237.02 245.5 249.02 232.87 352.6 350.98\n", + " 238.16 251. 227.18 225.2 349.26 221.36 233.9 246.57 235.15 253.14\n", + " 236.02 257.38 348.04 247.74 243.54 261.2 246.94 225.9 363.01 238.34\n", + " 364.52 242.95 251.86 248.17 233.46 233.22 230.48 236.14 228.48 254.43\n", + " 246.79 246.3 255.97 232.2 378.97 222.32 381.57 245.2 238.56 230.25\n", + " 242.71 222.08 353.06 261.29 220.96 254.63 261.48 243.97 244.35 240.64\n", + " 237.2 256.73 366.77 229.57 254.61 263.59 249.15 264.43 240.76 242.73\n", + " 251.7 244.44 227.32 230.44 225.92 241.63 243.82 243.45 230.32 247.4\n", + " 249.13 232.36 251.4 360.48 227.62 220.56 233.34 259.76 248.08 249.24\n", + " 250.79 247.64 248.93 231.22 264.06 325.2 231.02 230.3 232.22 228.58\n", + " 233.58 234.74 228.52 234.22 256.61 227.64 347.1 251.53 222.22 260.76\n", + " 245.52 255.27 254.34 363.27 238.83 223.2 259.7 227.2 219.12 239.31\n", + " 240.7 367.89 358.92 257.89 224.98 240.84 251.8 226. 258.06 253.47\n", + " 243.6 248.66 228.74 337.47 228.38 251.06 228.26 241.62 231.58 242.02\n", + " 229. 336.5 259.14 240.35 249.7 227.76 246.19 239.67 243.5 251.51\n", + " 242.78 250.9 249.6 257.47 234.64 323.35 228.92 235.44 333.8 244.36\n", + " 233.8 227.74 230.2 236.54 365.58 227.92 246.91 243.27 249.59 226.14\n", + " 242.37 360.11 219.46 251.34 231. 232.9 262.3 230.24 256. 250.25\n", + " 240.4 230.72 248.15 245.18 254.64 224.48 364.41 324.23 359.18 226.58\n", + " 235.23 366.9 221.02 231.66 380.42 342.6 231.46 244.15 229.06 372.57\n", + " 244.73 255.46 347.77]\n", + "Drugs of abuse 5 panel - Urine by Screen method\n", + "[nan 'negative' 'positive']\n", + "Interleukin 6 [Mass/volume] in Serum or Plasma\n", + "[ nan 5.33]\n", + "Tumor marker Cancer\n", + "[nan 'negative']\n", + "Glucose [Presence] in Urine by Test strip\n", + "[nan '2+']\n", + "Carbon dioxide [Partial pressure] in Arterial blood\n", + "[ nan 40.45 41.06 39.46 40.8 38.71 40.52 41.19 40.59 38.75 39.44 40.38\n", + " 41.44 40.08 40.79 39.95 39.98 40.49 39.58 40.63 42.71 39.61 37.45 38.77\n", + " 40.23 40.87 39. 40.41 38.6 39.26 39.23 40.77 40.55 40.01 39.83 40.68\n", + " 40.7 39.09 40.11 41.26 41.61 40.34 41.56 41.38 41.49 39.51 39.77 40.26\n", + " 40.74 39.02 40.64 39.15 38.81 40.14 40.56 40.19 40.51 39.38 39.5 41.22\n", + " 40.07 39.57 38.36 39.85 40.48 40.54 40.44 39.14 38.56 40.31 42.62 40.46\n", + " 38.83 42.07 39.74 38.98 42.94 39.89 41.8 39.88 40.36 38.96 41.69 40.04\n", + " 38.23 40.06 40.88 39.08 39.59 40.18 40.47 40.53 40.22 40.96 40.16 39.91\n", + " 39.49 37.46 40.24 39.06 39.79 39.41 40.82 39.78]\n", + "Eosinophils/100 leukocytes in Blood by Automated count\n", + "[ nan 4.45 4.4 4.59 3.74 4.35 4.61 4.46 4.51 5.05 4.73 4.72 4.65 4.15\n", + " 4.22 4.81 4.63 4.34 4.37 4.16 4.23 4.04 3.98 4.86 4.66 4.56 4.68 4.12\n", + " 4.83 4.25 4.92 4.75 4.32 4.58 4.11 4.71 4.41 4.21 4.17 4.89 4.19 4.43\n", + " 4.57 4.39 4.5 4.42 4.54 3.91 4.7 4.28 4.31 4.69 4.38 4.55 4.76 4.6\n", + " 4.78 4.29 4.74 4.98 4.93 4.88 4.33 4.94 4.24 4.49 4.48 4.36 4.47 5.08\n", + " 4.03 4.87 4.52 4.62 4.44 4.8 4.64 5.19 4.06 3.95 4.97 4.96 4.53 4.85\n", + " 4.08 3.87 3.92 4.18 4.84 3.84 4.27 3.99 5.06 5.24 4.82 4.79]\n", + "Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain\n", + "[nan 'positive' 'negative']\n", + "SARS-CoV-2 RNA Pnl Resp NAA+probe\n", + "[nan False True]\n", + "Hemoglobin [Presence] in Urine by Test strip\n", + "[nan 'positive' 'negative']\n", + "Bicarbonate [Moles/volume] in Arterial blood\n", + "[ nan 24.1 25.27 24.3 24.34 24.36 25.05 24.41 24.58 24.82 24.48 24.25\n", + " 24.22 23.65 24.33 24.69 23.9 24.62 24.89 24.71 24.7 24.09 24.56 24.08\n", + " 24.47 24.55 24.21 23.95 24.72 24.53 23.87 23.8 24.75 24.38 24.57 23.81\n", + " 24.06 24.93 25.07 24.64 23.67 24.23 23.94 24.28 24.44 24.17 24.45 24.37\n", + " 24.54 24.46 24.52 24.49 24.43 24.94 23.68 24.02 25.06 24.19 24.29 24.\n", + " 23.78 24.84 23.85 24.67 24.91 24.63 25.14 25.37 23.5 24.13 24.61 24.81\n", + " 24.15 24.32 24.85 23.55 25.21 23.18 24.76 24.07 24.92 25.15 24.86 24.12\n", + " 23.7 23.71 23.82]\n", + "Respiratory Disorders\n", + "[ 5 1 2 6 0 4 3 13 12 8 7 11 17 16 10 9 15 14]\n", + "Heart and Cardiovascular Diseases\n", + "[0 3 2 5 1 4 6 7 9 8]\n", + "Metabolic and Endocrine Disorders\n", + "[ 4 3 6 2 1 5 9 7 8 0 10 11 12]\n", + "Neurological Disorders\n", + "[2 0 3 4 1 6 5 8 7 9]\n", + "Orthopedic Injuries\n", + "[4 0 2 3 5 1 6 7]\n", + "Mental Health\n", + "[11 8 10 12 7 9 6 5 13 15 14 4 3 16 0 2 17 1]\n", + "Reproductive and Pregnancy\n", + "[ 0 1 15 18 14 23 19 12 2 13 5 16 20 21 24 11 17 8 9 10 3 4 22 6\n", + " 7 25 26]\n", + "Pain Relievers and Analesics\n", + "[3 2 1 4 0 5 7 6 8 9]\n", + "Cardiovascular and Blood Pressure Medications\n", + "[ 2 4 7 5 1 0 8 6 3 11 9 10 12 16 13 15 14 20]\n", + "Injection Medications\n", + "[ 3 1 2 4 6 7 5 8 0 10 9]\n", + "Oral Medications\n", + "[ 2 3 1 8 0 4 5 6 7 9 10 12]\n", + "Other Medications\n", + "[ 5 1 3 2 7 8 0 4 12 9 10 6 11 13 14 15]\n", + "Therapies and Regimes\n", + "[ 9 2 8 7 3 4 6 5 10 11 13 1 12 14 15 0]\n", + "Diagnostic Procedures\n", + "[ 8 7 9 5 10 14 16 1 3 6 15 13 4 19 12 18 2 11 17 20 24 21 25 23\n", + " 22 0]\n", + "Surgical Interventions\n", + "[1 2 0 3 4 5 6 7]\n", + "Patient Care Management\n", + "[ 8 10 13 12 3 6 2 5 9 7 4 11 14 15 1 16 19 0 17]\n", + "age_30t50\n", + "[0 1]\n", + "age_50t70\n", + "[1 0]\n", + "age_gt70\n", + "[0 1]\n", + "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Albumin_abnormal\n", + "[0 1]\n", + "Albumin_normal\n", + "[0 1]\n", + "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Urine by Test strip_abnormal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Urine by Test strip_normal\n", + "[0 1]\n", + "Body Mass Index_abnormal\n", + "[1 0]\n", + "Body Mass Index_normal\n", + "[0 1]\n", + "Body temperature_abnormal\n", + "[0 1]\n", + "Body temperature_normal\n", + "[1 0]\n", + "Calcium_normal\n", + "[1 0]\n", + "Calcium [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Carbon Dioxide_abnormal\n", + "[0 1]\n", + "Carbon Dioxide_normal\n", + "[0 1]\n", + "Chloride_abnormal\n", + "[0 1]\n", + "Chloride_normal\n", + "[1 0]\n", + "Chloride [Moles/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Chloride [Moles/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Creatinine_abnormal\n", + "[0 1]\n", + "Creatinine_normal\n", + "[1 0]\n", + "DXA [T-score] Bone density_abnormal\n", + "[0 1]\n", + "DXA [T-score] Bone density_normal\n", + "[1 0]\n", + "Diastolic Blood Pressure_abnormal\n", + "[1 0]\n", + "Diastolic Blood Pressure_normal\n", + "[0 1]\n", + "Erythrocyte distribution width [Entitic volume] by Automated count_abnormal\n", + "[0 1]\n", + "Erythrocyte distribution width [Entitic volume] by Automated count_normal\n", + "[1 0]\n", + "Erythrocyte distribution width [Ratio] by Automated count_abnormal\n", + "[0 1]\n", + "Erythrocyte distribution width [Ratio] by Automated count_normal\n", + "[0 1]\n", + "Erythrocytes [#/volume] in Blood by Automated count_abnormal\n", + "[0 1]\n", + "Erythrocytes [#/volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Ferritin [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Ferritin [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Globulin [Mass/volume] in Serum by calculation_abnormal\n", + "[0 1]\n", + "Globulin [Mass/volume] in Serum by calculation_normal\n", + "[0 1]\n", + "Glomerular filtration rate/1.73 sq M.predicted_abnormal\n", + "[0 1]\n", + "Glomerular filtration rate/1.73 sq M.predicted_normal\n", + "[0 1]\n", + "Glucose_abnormal\n", + "[0 1]\n", + "Glucose_normal\n", + "[1 0]\n", + "Glucose [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Glucose [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Glucose [Mass/volume] in Urine by Test strip_normal\n", + "[0 1]\n", + "Heart rate_abnormal\n", + "[0 1]\n", + "Heart rate_normal\n", + "[1 0]\n", + "Hematocrit [Volume Fraction] of Blood_abnormal\n", + "[0 1]\n", + "Hematocrit [Volume Fraction] of Blood_normal\n", + "[0 1]\n", + "Hematocrit [Volume Fraction] of Blood by Automated count_abnormal\n", + "[0 1]\n", + "Hematocrit [Volume Fraction] of Blood by Automated count_normal\n", + "[1 0]\n", + "Hemoglobin A1c/Hemoglobin.total in Blood_abnormal\n", + "[1 0]\n", + "Hemoglobin A1c/Hemoglobin.total in Blood_normal\n", + "[0 1]\n", + "Hemoglobin [Mass/volume] in Blood_abnormal\n", + "[0 1]\n", + "Hemoglobin [Mass/volume] in Blood_normal\n", + "[1 0]\n", + "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method_abnormal\n", + "[0 1]\n", + "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method_normal\n", + "[0 1]\n", + "High Density Lipoprotein Cholesterol_abnormal\n", + "[1 0]\n", + "High Density Lipoprotein Cholesterol_normal\n", + "[0 1]\n", + "Iron [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Iron [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Iron binding capacity [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Iron binding capacity [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Iron saturation [Mass Fraction] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Iron saturation [Mass Fraction] in Serum or Plasma_normal\n", + "[0 1]\n", + "Left ventricular Ejection fraction_abnormal\n", + "[0 1]\n", + "Left ventricular Ejection fraction_normal\n", + "[0 1]\n", + "Leukocytes [#/volume] in Blood by Automated count_abnormal\n", + "[0 1]\n", + "Leukocytes [#/volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Low Density Lipoprotein Cholesterol_abnormal\n", + "[0 1]\n", + "Low Density Lipoprotein Cholesterol_normal\n", + "[1 0]\n", + "MCH [Entitic mass] by Automated count_abnormal\n", + "[0 1]\n", + "MCH [Entitic mass] by Automated count_normal\n", + "[1 0]\n", + "MCHC [Mass/volume] by Automated count_normal\n", + "[1 0]\n", + "MCV [Entitic volume] by Automated count_normal\n", + "[1 0]\n", + "Magnesium [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Magnesium [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Microalbumin Creatinine Ratio_abnormal\n", + "[0 1]\n", + "Microalbumin Creatinine Ratio_normal\n", + "[0 1]\n", + "NT-proBNP_abnormal\n", + "[0 1]\n", + "Oxygen saturation in Arterial blood_abnormal\n", + "[0 1]\n", + "Pain severity - 0-10 verbal numeric rating [Score] - Reported_abnormal\n", + "[1 0]\n", + "Pain severity - 0-10 verbal numeric rating [Score] - Reported_normal\n", + "[0 1]\n", + "Platelet mean volume [Entitic volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Platelets [#/volume] in Blood by Automated count_abnormal\n", + "[0 1]\n", + "Platelets [#/volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Polyp size greatest dimension by CAP cancer protocols_abnormal\n", + "[0 1]\n", + "Polyp size greatest dimension by CAP cancer protocols_normal\n", + "[0 1]\n", + "Potassium_normal\n", + "[1 0]\n", + "Prostate specific Ag [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Prostate specific Ag [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Protein [Mass/volume] in Urine by Test strip_abnormal\n", + "[0 1]\n", + "Protein [Mass/volume] in Urine by Test strip_normal\n", + "[0 1]\n", + "Respiratory rate_abnormal\n", + "[0 1]\n", + "Respiratory rate_normal\n", + "[1 0]\n", + "Sodium_normal\n", + "[1 0]\n", + "Specific gravity of Urine by Test strip_abnormal\n", + "[0 1]\n", + "Systolic Blood Pressure_abnormal\n", + "[1 0]\n", + "Systolic Blood Pressure_normal\n", + "[0 1]\n", + "Total Cholesterol_abnormal\n", + "[0 1]\n", + "Total Cholesterol_normal\n", + "[1 0]\n", + "Triglycerides_abnormal\n", + "[0 1]\n", + "Triglycerides_normal\n", + "[1 0]\n", + "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method_abnormal\n", + "[0 1]\n", + "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method_normal\n", + "[0 1]\n", + "US Guidance for biopsy of Prostate_abnormal\n", + "[0 1]\n", + "US Guidance for biopsy of Prostate_normal\n", + "[0 1]\n", + "Urea Nitrogen_normal\n", + "[1 0]\n", + "Urea nitrogen [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "pH of Urine by Test strip_normal\n", + "[0 1]\n" + ] + } + ], + "source": [ + "# what columns are still not numeric?\n", + "for col in df2.columns:\n", + " print(col)\n", + " print(df2[col].unique())" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "columns_to_encode = [\n", + " 'HER2 [Presence] in Breast cancer specimen by FISH',\n", + " 'Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain',\n", + " 'Ketones [Mass/volume] in Urine by Test strip',\n", + " 'marital',\n", + " 'Abuse Status [OMAHA]',\n", + " 'Interleukin 6 [Mass/volume] in Serum or Plasma',\n", + " 'Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain',\n", + " 'Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'Response to cancer treatment',\n", + " 'Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain',\n", + " 'Hemoglobin [Presence] in Urine by Test strip',\n", + " 'Housing status',\n", + " 'Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'Objective assessment of cardiovascular disease NYHA',\n", + " 'Drugs of abuse 5 panel - Urine by Screen method',\n", + " 'Leukocyte esterase [Presence] in Urine by Test strip',\n", + " 'Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'Protein [Presence] in Urine by Test strip',\n", + " 'Appearance of Urine',\n", + " 'Capillary refill [Time] of Nail bed',\n", + " 'Treatment status Cancer',\n", + " 'Gram positive blood culture panel by Probe in Positive blood culture',\n", + " 'Glucose [Presence] in Urine by Test strip',\n", + " 'Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'Functional capacity NYHA',\n", + " 'Color of Urine',\n", + " 'Nitrite [Presence] in Urine by Test strip',\n", + " 'Tumor marker Cancer',\n", + " 'Tobacco smoking status NHIS',\n", + " 'gender',\n", + " 'HIV status',\n", + " 'Are you covered by health insurance or some other kind of health care plan [PhenX]',\n", + " 'Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'Ketones [Presence] in Urine by Test strip',\n", + " 'Clarity of Urine',\n", + " 'Stage group.clinical Cancer',\n", + " 'Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'HER2 [Presence] in Breast cancer specimen by Immune stain',\n", + " 'Smokes tobacco daily',\n", + " 'Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection',\n", + " 'SARS-CoV-2 RNA Pnl Resp NAA+probe',\n", + " 'Influenza virus A Ag [Presence] in Nasopharynx by Rapid immunoassay',\n", + " 'Influenza virus B Ag [Presence] in Nasopharynx by Rapid immunoassay'\n", + "]\n", + "\n", + "df2 = pd.get_dummies(df2, columns=columns_to_encode, prefix_sep='_', dtype=int)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's see one more time if we have any null values." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column Null Values Percentage\n", + "---------------------------------------------------------------------------------------------------- ------------------------\n", + "Bicarbonate [Moles/volume] in Arterial blood 98.6848\n", + "Carbon dioxide [Partial pressure] in Arterial blood 98.6848\n", + "pH of Arterial blood 98.6848\n", + "Oxygen [Partial pressure] in Arterial blood 98.6848\n", + "Oxygen/Inspired gas setting [Volume Fraction] Ventilator 98.6848\n", + "Total Bilirubin (Elevated) 98.3311\n", + "RBC Distribution Width 98.3311\n", + "Red Blood Cell 98.3311\n", + "Platelet Count 98.3311\n", + "White Blood Cell (Elevated) 98.3311\n", + "Anion Gap 98.3311\n", + "MCV 98.3311\n", + "Creatine kinase [Enzymatic activity/volume] in Serum or Plasma 97.1706\n", + "Basophils/100 leukocytes in Blood by Automated count 97.1706\n", + "Eosinophils/100 leukocytes in Blood by Automated count 97.1706\n", + "Lactate dehydrogenase [Enzymatic activity/volume] in Serum or Plasma by Lactate to pyruvate reaction 97.1706\n", + "Lymphocytes [#/volume] in Blood by Automated count 97.1706\n", + "Neutrophils [#/volume] in Blood by Automated count 97.1706\n", + "C reactive protein [Mass/volume] in Serum or Plasma 97.1706\n", + "Fibrin D-dimer FEU [Mass/volume] in Platelet poor plasma 97.1706\n", + "INR in Platelet poor plasma by Coagulation assay 97.1706\n", + "Procalcitonin [Mass/volume] in Serum or Plasma 97.1706\n", + "Eosinophils [#/volume] in Blood by Automated count 97.1706\n", + "Lymphocytes/100 leukocytes in Blood by Automated count 97.1706\n", + "Neutrophils/100 leukocytes in Blood by Automated count 97.1706\n", + "Basophils [#/volume] in Blood by Automated count 97.1706\n", + "Monocytes/100 leukocytes in Blood by Automated count 97.1706\n", + "Prothrombin time (PT) 97.1706\n", + "Monocytes [#/volume] in Blood by Automated count 97.1706\n" + ] + } + ], + "source": [ + "null_values = df2.isnull().sum()\n", + "null_values = null_values[null_values > 0]\n", + "null_values = 100 * null_values / len(df2)\n", + "null_values = null_values.sort_values(ascending=False)\n", + "null_values_df = null_values.reset_index()\n", + "null_values_df.columns = ['Column', 'Null Values Percentage']\n", + "print(tabulate(null_values_df, headers='keys', tablefmt='simple', showindex=False))" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "White Blood Cell (Elevated)\n", + "[ nan 11.6 12.9 13.3 14.1 14.5 12.3 11.4 14. 13.7 13.9 14.2 12.4 14.3\n", + " 12. 12.8 11.7 12.1 13.5 14.4 14.6 13.2 14.8 13.6 11.9 11.8 11.5 12.2\n", + " 13.8 13.4 11.3 15. 12.7 11.1 14.7 12.6 13. 11.2 14.9 12.5]\n", + "Platelet Count\n", + "[ nan 162.1 291.7 444. 411. 368.2 250. 217.9 178.7 292.5 428.9 254.8\n", + " 423.7 427.7 306.4 421.5 340.9 227.8 322.3 192.7 323.4 440.8 349.8 429.9\n", + " 328.2 374.3 228.3 204.6 308.6 200.3 429.3 174.3 155.7 329.5 173.6 204.9\n", + " 260.9 420.7 356.7 449.9 387.3 171.6 440.4 384.8 417.1 186. 396.8 307.1\n", + " 239.1 175.1 234.4 268. 331.7 326.5 324.6 391.3 336.6 210.8 348.6 407.5\n", + " 417.6 198.2 226.9 231.5 243.1 378.9 325.2 446.3 266.9 244.4 371. 442.4\n", + " 432.1 258.9 214.5 264.5 335. 338.2 444.9 278.5 211.3 385.1 350.5 290.1\n", + " 248. 421.3 448.4 304.1 265.8 184.5 281.8 434.9 291.9 297.8 205.6 191.5\n", + " 293.7 287. 327. 249.9 412.8 346.9 422.3 320.4 155.4 173.3 339.4 402.8\n", + " 394.8 182.9 185.9 299.4 252.4 265.1 155.3 299.9 212.9 344.8 428.8 405.8\n", + " 298.4 385.8 257.1 439.4 210.5 254.2 303.7 283.6 329.8 162.3 317. 365.6\n", + " 273.4 447.5 209.6 196.1 415.3 197.6 295. 357.9 342.9 266. 224.8 181.3\n", + " 424.9 265.2 303.6 162.8 367.1]\n", + "Anion Gap\n", + "[ nan 9.4 7.2 9.5 13.2 3.5 11.8 3.4 2.4 8.1 4.9 2.3 12.1 4.6\n", + " 7.6 7.7 5.6 10.7 4.1 10.2 11.4 12.2 7.5 13.9 6.7 6.4 6.9 13.6\n", + " 10.1 3.1 3.9 13.3 5.3 4.5 12. 6.2 11.3 8.9 10.5 10.6 11.9 5.8\n", + " 12.6 11.6 14.9 8.7 11.1 12.5 4.3 10. 2.1 5.5 14. 11. 14.7 8.5\n", + " 12.3 14.1 5.9 6.1 2. 7.1 3.7 5.4 13.8 8.8 10.3 2.7 11.7 2.8\n", + " 5. 10.8 9. 9.9 14.3 12.7 14.8 7. 9.1 9.8 8.2 5.2 8.3 4.8\n", + " 12.8 6.3 8.4 7.3 11.2 7.9 13.4 4. 6. 3.3 3.6]\n", + "C reactive protein [Mass/volume] in Serum or Plasma\n", + "[ nan 10.27 9.87 10.57 10.13 10.18 9.84 10.23 10.08 10.73 10.42 10.32\n", + " 12.84 9.42 10.14 9.77 10.01 9.89 14.09 9.98 13.15 10.7 9.9 13.43\n", + " 10.21 13.54 9.78 9.66 10.64 12.89 10.31 10.4 9.7 13.09 10.05 10.45\n", + " 9.94 10.24 10.38 10.06 10.26 10.37 10.17 13.56 13.03 9.6 10.6 9.51\n", + " 9.32 13.57 10.9 10.8 10.36 10.78 9.4 9.48 12.45 9.14 10.3 10.1\n", + " 9.86 9.88 13.16 10.44 13.64 10.02 9.93 9.68 10.04 9.8 9.76 10.11\n", + " 10.69 10.22 9.3 13.39 9.96 8.91 10.03 9.83 11.2 13.74 9.08 9.63\n", + " 10.49 9.52 10.07 10.58 12.49 9.91 10.43 10.34 9.65 10.52 9.62 9.54\n", + " 13.82 10.96 9.43 10.83 10.59 9.5 10.09 10.2 9.58 12.9 9.1 11.\n", + " 10.76 10.16 9.69 9.64 12.21 9.46 12.94 9.67 12.46 11.28 10.84 9.06\n", + " 10.85 10.72 9.82 10.63 15.4 9.56 9.27 9.47 9.72 9.11 10.91 9.24\n", + " 10.54 10.95 10.47 9.92 13.67 9.44 12.6 9.04 13.07 9.13 9.19 9.15\n", + " 9.81 9.73 9.97 13.1 12.3 13.14 10.39 11.14 14.45 10.12 13.11 12.82\n", + " 10.28 9.57 12.09]\n", + "Fibrin D-dimer FEU [Mass/volume] in Platelet poor plasma\n", + "[ nan 0.42 0.47 0.43 0.38 0.45 0.4 0.34 11.01 0.56 5.2 11.35\n", + " 0.44 7.23 11.38 0.46 8.89 11.76 0.36 0.51 2.12 7.67 7.83 6.51\n", + " 0.49 6.52 0.53 10.17 0.41 10.02 0.39 0.37 13.81 13.34 0.5 7.94\n", + " 0.54 0.35 10.14 8.09 1.96 0.3 6.45 10.19 12.61 8.73 1.43 4.95\n", + " 1.73 1.37 0.32 9.84 8.56 1.5 9.88 11.7 14.05 5.89 0.55 7.09]\n", + "label\n", + "[0 1]\n", + "Oxygen/Inspired gas setting [Volume Fraction] Ventilator\n", + "[ nan 69.41 65.75 60.01 59.06 77.46 67.87 73.69 63.76 57.75 56.91 71.23\n", + " 68.25 63.79 61.4 60.19 69.44 65.89 61.81 70.96 68.06 61.94 62.55 60.05\n", + " 61.73 59.5 62.46 66.76 71.5 66.16 68.96 64.94 65.71 71.08 64.1 59.46\n", + " 70.17 60.64 55.96 63.64 59.38 61.76 66.34 64.53 60.16 61.69 71.42 71.07\n", + " 54.98 65.87 59.32 66.7 72.12 63.82 68.18 63.61 60.77 70.26 59.45 64.42\n", + " 59.19 65.42 59.85 57.18 71.11 64.75 66.46 56.26 55.83 64.61 69.65 58.36\n", + " 68.37 68.27 75.45 58.97 62.9 64.13 66.98 61.06 62.16 69.7 70.94 69.67\n", + " 64.85 70.65 54.01 67.29 62.26 54.76 61.66 60.95 70.62 61.7 61.24 56.48\n", + " 65.92 70.51 56.17 72. 68.82 75.88 66.49 54.43 64.93 62.64 63.55 68.23\n", + " 66.55 66.3 68.28 73.22 65.82 61.49]\n", + "INR in Platelet poor plasma by Coagulation assay\n", + "[ nan 2.05 1.95 2.17 2.12 1.82 1.77 2.25 1.39 3.9 1.97 1.84 2.38 2.63\n", + " 1.76 3.99 4.08 2.08 1.79 3.8 2.01 3.98 2.3 1.64 4. 1.94 2.04 2.\n", + " 4.2 1.62 2.23 2.1 2.02 1.88 3.82 1.34 2.24 1.65 4.1 4.04 1.81 1.89\n", + " 2.16 3.81 2.22 2.54 2.37 1.86 2.11 4.14 2.21 2.41 1.83 2.14 4.27 2.07\n", + " 3.91 2.18 1.87 1.63 1.72 3.97 2.2 1.61 1.7 1.55 2.06 1.59 3.73 1.68\n", + " 1.78 1.92 2.13 2.26 1.56 1.93 1.8 2.28 4.03 1.58 2.44 1.85 3.78 1.98\n", + " 1.66 1.96 3.89 2.27 1.71 3.94 1.73 1.9 1.6 3.83 2.15 2.32 2.36 2.33\n", + " 2.6 4.36 1.67 3.85 2.43 2.58 2.48 2.29 4.09 4.07 3.95 1.91 3.86 3.75\n", + " 4.16 3.79]\n", + "MCV\n", + "[ nan 92.6 94.3 93.5 82.1 91.4 90.9 88.4 88.2 89.2 92.7 91.5 89.1 83.1\n", + " 85.9 85.3 89.5 90.4 87.5 91.3 90.5 83.6 81.7 82.5 85.5 88. 93.4 81.5\n", + " 81.8 92.2 91.1 88.6 80.6 94. 87.1 82.2 88.5 82.8 85.2 81.3 81.2 83.7\n", + " 95.2 82.3 95.9 80.1 95.6 80.2 84.2 92.4 90.1 87.4 84.3 90.7 84.9 84.4\n", + " 85.4 91.7 94.1 91.9 80.7 83.8 88.8 94.5 91.8 89.6 84.5 95.8 95.3 91.2\n", + " 86.8 93.1 90.2 87.2 93.9 81.4 82.4 89.4 87. 93.3 82. 80.9 90.3 93.2\n", + " 88.9 86.5 87.8 96. 83. 87.6 93.8 89. 84.7 88.1 80. 85.1 86.2 86.3]\n", + "Basophils [#/volume] in Blood by Automated count\n", + "[ nan 0.32 0.3 0.33 0.31 0.28 0.29 0.27 0.34 0.26 0.25 0.24 0.35]\n", + "Procalcitonin [Mass/volume] in Serum or Plasma\n", + "[ nan 0.08 0.07 0.13 0.14 0.1 0.12 0.24 0.09 0.2 0.32 0.19 0.22 0.16\n", + " 0.26 0.17 0.06 0.28 0.04 0.3 0.21 0.11 0.05 0.25 0.15 0.02 0.27 0.29\n", + " 0.37 0.23 0.18]\n", + "Creatine kinase [Enzymatic activity/volume] in Serum or Plasma\n", + "[ nan 27.88 38.47 38.32 38.02 36.5 36.83 25.42 36.82 38.51\n", + " 35.18 35.33 104.54 32.64 32.87 23.1 31.18 123.83 21. 124.27\n", + " 27. 35.97 26.14 161.34 31.8 99.11 33.87 38.3 32.81 123.23\n", + " 29.99 41.63 34.07 34.51 28.3 120.23 35. 38.64 26.73 25.94\n", + " 26.63 32.18 108.32 24.08 42.39 37.18 31.35 115.12 116.18 43.\n", + " 33.08 32.89 19.72 32.1 53.88 38.34 40. 34.94 27.25 31.74\n", + " 34.04 27.6 32.73 93.33 31.36 34.87 29.13 26.27 32.3 107.05\n", + " 30.26 131.25 24.93 29.87 37.72 32.58 28.88 31.94 41.44 32.22\n", + " 39.07 38.54 30.7 36.6 28.14 111.28 39.2 30.39 109.73 25.8\n", + " 35.36 28.46 31.52 29.41 22.06 32.42 125.7 40.54 34.06 30.24\n", + " 31.66 37.37 35.38 27.78 35.93 148.09 28.72 28.93 34.83 30.29\n", + " 27.61 30.13 33.99 27.91 33.94 25.72 31.28 28.32 40.28 35.77\n", + " 29.05 33.63 125.73 26.94 20.26 32.96 32.5 42.57 37.21 30.76\n", + " 30.47 26.12 36.66 135.96 33.88 20.98 30.44 32.98 23.98 38.96\n", + " 41.26 29.7 33.14 36.42 118.72 33.06 33.32 43.54 22.91 29.56\n", + " 105.54 31.08 21.3 40.77 36. 37.04 38.74 33.37 128.96 118.76\n", + " 33.79 25.24 36.73 39.36 34.95 27.52 35.9 35.99 31.84 26.67\n", + " 105.27 34.86 36.09 29.28 38.12 30.55 30.3 98.22 34.67 38.36\n", + " 34.24 36.51 29.45 37.57 36.23 27.63 26.39 33.21 39.1 30.64\n", + " 145.97 28.58 37.44 132.17 27.64 28.96 38.53 27.86 113.06 29.4\n", + " 31.34 31.23 40.85 35.51 37.92 20.72 138.17 30.72 30.33 26.78\n", + " 30.58 33.49 34.44 27.31 35.85 30.2 25.44 37.77 32.47 38.22\n", + " 36.2 36.94 104.26 129.87 92.5 31.72 32.08 33.23 107.88 31.62\n", + " 97.99 102.82 35.46 22.35 40.66 35.7 113.65 41.33 35.91 114.33]\n", + "Total Bilirubin (Elevated)\n", + "[nan 2.4 1.3 1.9 2.2 1.6 2.3 1.7 1.2 1.4 1.5 2.5 2.1 2. 1.8]\n", + "Prothrombin time (PT)\n", + "[ nan 11.93 11.5 11.85 11.88 12.02 11.32 11.68 11.54 11.74 11.07 12.48\n", + " 11.27 11.78 11.86 11.57 12.46 12.39 11.14 10.93 11.61 12.83 10.87 12.65\n", + " 11.47 11.73 12.38 12.29 11.43 11.7 12.44 11.83 12.24 11.52 11.82 12.34\n", + " 12.12 13.21 11.94 11.49 10.83 11.44 12.71 12.1 11.34 12.06 11.9 11.17\n", + " 11.84 11.04 11.63 11.23 11.77 10.96 12.87 11.59 12.57 11.4 11.42 12.26\n", + " 10.84 11.48 11.37 12.6 12.59 11.81 11.99 12.07 11.26 11.66 12.28 11.21\n", + " 11.53 11.22 10.6 11.8 11.87 11.33 11.39 11.38 11.18 12. 11.55 11.65\n", + " 11.96 12.78 11.3 11.92 10.97 11.28 11.24 11.46 12.13 11.62 11.06 11.76\n", + " 11.36 12.7 11.2 11.6 12.73 11.98 10.86 11.29 11.67 12.18 12.55 11.79\n", + " 12.05 11.71 11.19 12.4 11.75 12.79 11.02 11.09 11.41 13. 11.13 12.8\n", + " 11.89 10.98 11.16 10.99 12.04 12.89 12.2 12.98 11.05 10.92 12.45 11.12\n", + " 12.19]\n", + "Monocytes/100 leukocytes in Blood by Automated count\n", + "[ nan 10.06 9.52 9.73 10.04 10.92 11.15 9.18 11.04 10.54 7.97 9.82\n", + " 9.13 9.89 8.93 10.32 10.97 8.59 10.18 10.11 10.26 9.35 8.73 11.22\n", + " 10.56 10.52 10.3 9.56 10.76 10.07 10.12 10.79 10.36 9.42 10.13 10.29\n", + " 11.27 10.5 9.87 9.34 9.07 11.43 9.41 10.82 10.34 9.75 10.03 11.16\n", + " 10.55 10.64 8.96 10.17 10.94 9.39 9.8 10.2 9.78 10.45 8.36 9.1\n", + " 9.74 11.3 11.34 9.9 9.99 9.94 9.48 10.91 11.39 10.42 10.58 10.37\n", + " 11.73 10.68 9.58 9.86 9.79 7.91 10.02 10.22 9.71 10.81 8.79 10.41\n", + " 9.62 11.91 10.75 9.43 9.36 9.61 9.84 11.44 10.47 10.08 9.98 10.1\n", + " 9.01 10.71 11.25 9.29 9.88 9.7 9.32 10.31 8.92 9.4 9.95 9.93\n", + " 10.83 11.29 9.3 11.2 8.97 9.02 9.66 10.27 10.46 11.08 10.72 10.51\n", + " 9.44 11.13 9.91 9.22 9.72 9.92 10.39 9.83 9.24 11.17 9.64 9.12\n", + " 8.94 8.55 10.62 8.06 10.44 9.31 10.14 11. 8.81 8.71 9.27 9.26\n", + " 8.12 11.72 11.28 12.27 9.76 8.89 8.9 9.2 10.7 10.73 9.67 10.\n", + " 10.25 9.25 11.1 10.43 9.6 9.14 10.78 9.53 10.74 10.57]\n", + "Monocytes [#/volume] in Blood by Automated count\n", + "[ nan 0.96 0.75 0.9 0.94 1.02 0.98 0.99 1. 0.8 0.93 1.03 0.87 1.05\n", + " 0.82 0.89 1.06 0.81 0.95 0.88 1.01 0.91 0.97 0.86 0.92 1.16 1.11 1.04\n", + " 1.08 0.85 1.09 0.76 0.84 1.07 0.78 1.1 1.12 0.83]\n", + "scc\n", + "[101 110 127 129 69 111 76 105 106 119 103 63 55 107 112 59 32 90\n", + " 83 123 66 117 116 46 141 86 100 113 102 108 115 124 109 104 99 150\n", + " 126 52 98 139 120 89 118 61 114 65 62 145 136 137 58 74 71 97\n", + " 68 96 87 122 128 54 130 60 133 73 121 132 138 53 149 72 51 57\n", + " 47 134 140 143 82 91 135 75 80 146 151 131 64 67 125 50 48 34\n", + " 93 43 142 153 156 70 78 77 160 170 49 88 81 174 158 84 95 79\n", + " 56 169 92 148 161 175 172 44 85 19 41 144 45 40 152 157 147 94\n", + " 35 165 20 177 37 154 21 155 167 166 181 184 42 39 164 190 38 14\n", + " 168 171 9 29 159 28]\n", + "Neutrophils/100 leukocytes in Blood by Automated count\n", + "[ nan 27.85 26.78 30.78 27.69 28.91 27.15 25.12 28.56 26.64 28.4 28.97\n", + " 25.21 31.12 29.06 25.02 28.81 27.83 27.08 31.5 31.13 31.79 24.54 28.34\n", + " 26.81 25.62 30.44 27.99 27.51 26.36 28.83 28.12 30.79 30.1 31.76 23.98\n", + " 28.86 25.46 29.87 30.72 24.72 22.8 24.62 29.57 27.12 25.91 28.03 29.72\n", + " 27.49 24.13 27.52 34.85 18.61 29.81 26.97 32.32 25.65 27.28 28.28 24.21\n", + " 28.29 28.32 31.44 29.19 24.99 29.66 27.18 27.94 23.81 18.64 26.61 25.34\n", + " 33.41 26.1 28.01 29.07 31.42 32.06 31.99 26.06 29.39 23.64 29.5 24.53\n", + " 28.39 28.02 26.49 29.86 23.38 22.51 33.83 29.04 23.37 32.04 27.07 30.24\n", + " 31.2 28.47 20.61 23.27 22.17 29.63 32.88 26.32 28.93 23.96 27.75 31.59\n", + " 22.96 28.16 30.71 22.11 28.61 23.6 27.45 27.79 25.17 27.71 29.1 24.7\n", + " 27.66 29.49 23.86 28.92 25.22 31.06 29.65 29.89 25.99 23.01 25.45 33.02\n", + " 32.29 26.09 24.16 20.5 26.77 24.66 28.2 30.37 30.21 30.19 22.86 27.56\n", + " 30.51 25.53 28.49 33.92 23.08 28.74 22.85 27.39 29.51 26.52 26.47 31.7\n", + " 28.69 25.33 26.14 29.16 25.01 31.38 22.66 31.86 25.69 26.08 26.93 28.05\n", + " 26.86 28.53 33.1 24.6 24.46 32.92 29.25 25.18 25.8 28.89 30.32 25.86\n", + " 26.79 27.93 28.68 21.16 33.05 27.47 21.27 26.31 27.2 23.66 25.49 34.77\n", + " 23.54 30.39 29.11 24.69 28.15 21.11 28.43 25.75 26.9 26.34 29.95 29.71\n", + " 22.26 24.79 24.77 24.55 27.14 23.67 25.82 24.47 30.47 29.38 29.94 29.43\n", + " 27.31 28.44 34.19 31.33 28.06 23.83 33.23 31.74 33.8 27.16 25.48]\n", + "Lymphocytes/100 leukocytes in Blood by Automated count\n", + "[ nan 15.09 14.29 15.67 15.57 15.17 16.88 16.07 12.23 14.82 13.94 13.37\n", + " 15.79 15.31 12.33 14.09 16.49 14.18 15.02 13.84 12.7 12.13 14.1 14.7\n", + " 18.52 17.23 17.09 15.84 13.36 15.46 15.12 14.21 17.22 18.47 16.57 16.59\n", + " 15.94 14.58 16.55 13.47 13.24 13.02 17.35 13.64 17.03 14.04 14.06 13.2\n", + " 13.61 16.52 16.46 15.4 14.67 19.64 11.5 15.62 13.91 14.4 14.31 14.03\n", + " 16.13 11.42 15.66 14.25 14.87 12.94 16.65 13.86 13.09 15.58 15.87 13.99\n", + " 16.34 16.38 16.18 15.22 14.26 16.44 14.78 11.04 12.66 17.01 15.95 13.74\n", + " 15.49 17.38 15.33 14.28 18.22 13.69 12.91 19.07 15.14 13.5 16.12 13.45\n", + " 15.47 13.92 15.68 15.63 16.22 15.89 14.46 14.72 13.41 18.5 13.22 13.62\n", + " 17.59 15.54 14.61 18.78 14.41 15.51 14.48 14.91 11.97 17.37 13.54 10.5\n", + " 17.25 16.99 16.48 15.21 16.54 14.53 14.49 15.37 16.79 16.2 17.07 16.43\n", + " 15.64 14.45 14.05 17.12 14.73 15.39 17.36 17.2 15.29 17.08 14.83 14.76\n", + " 14.92 14.44 15.76 10.61 17.75 14.23 14.02 16.98 15.81 18.05 13.89 18.39\n", + " 15.16 20.15 15.41 11. 12.74 14.47 13.55 17.24 15.52 15.98 17.27 17.18\n", + " 15.59 16.32 18.28 16.76 13.49 15.56 10.33 14.5 16.58 15.82 14.66 10.32\n", + " 14.15 16.81 13.52 15.75 14.6 12.36 14.65 12.35 14.63 15.13 14.3 14.74\n", + " 17.05 15.72 15.88 12.77 13.98 14.95 13.38 12.89 13.93 14.77 16.83 17.11\n", + " 17.63 16.7 16.4 16.37 14.89 14.93 13.72 14.24]\n", + "Red Blood Cell\n", + "[nan 5.5 5.4 4.9 4.8 4.7 5.3 5. 5.7 4.6 5.8 5.2 5.9 4.5 5.6 5.1]\n", + "Eosinophils [#/volume] in Blood by Automated count\n", + "[ nan 0.41 0.36 0.4 0.38 0.42 0.32 0.47 0.37 0.43 0.39 0.46 0.34 0.44\n", + " 0.45 0.48 0.35 0.33 0.3 ]\n", + "RBC Distribution Width\n", + "[ nan 12.4 14.4 13.6 12.1 13.5 11.8 13.2 14.5 14.3 12.2 14.6 14.2 12.8\n", + " 13.4 12. 13.9 13.8 12.3 11.6 11.9 12.6 11.7 13.3 13.1 12.9 14. 12.5\n", + " 14.1 12.7 13.7 13. ]\n", + "Basophils/100 leukocytes in Blood by Automated count\n", + "[ nan 3.2 3.05 3.01 2.9 2.95 3.09 2.89 3.16 2.99 3.11 2.57 2.84 2.96\n", + " 3.12 2.85 2.87 2.64 2.77 3.06 3.02 3.04 2.75 2.92 2.66 3.27 2.93 3.28\n", + " 3.13 3.1 3.22 3.14 2.94 3.21 3.19 2.83 3.43 2.76 3.3 3.23 3. 2.91\n", + " 2.86 3.46 3.15 2.98 3.07 3.17 2.79 3.08 2.81 2.88 3.03 2.8 2.78 3.18\n", + " 2.63 3.25 2.68 2.97 2.56 2.74 3.49 2.73 3.34 3.26 3.38 2.65 3.24 2.82\n", + " 3.32 3.31 2.71 3.33 3.29 3.36]\n", + "Oxygen [Partial pressure] in Arterial blood\n", + "[ nan 51.12 47.66 46.48 46.73 50.86 46.94 48.78 45.2 49.18 51.67 45.34\n", + " 49.25 45.85 45.67 50.47 48.48 50.48 47.68 49.42 50.88 49.85 45.5 52.16\n", + " 49.49 52.44 47.32 51.72 49.15 50.62 49.89 50.76 48.15 47.25 47.62 52.65\n", + " 50.46 49.28 45.59 50.74 46.21 51.1 46.07 47.76 47.8 48.39 51.85 47.72\n", + " 49.47 48.27 51.13 48.64 47.26 49.61 48.47 44.14 47.54 48.61 50.63 44.49\n", + " 46.43 50.29 46.88 49.34 47.93 50.36 49.38 50.79 49.99 46.85 50.82 48.83\n", + " 47.18 50.11 50.18 48.5 46.03 49.96 48.82 49.55 48.25 47.63 51.36 48.94\n", + " 46.91 48.05 49.56 49.94 48.97 48.12 52.19 47.19 49.6 45.09 47.38 51.84\n", + " 47.11 47.75 49.19 50.25 48.7 48.72 49.37 48.16 48.43 45.03 47.79 50.33\n", + " 47.89 49.95]\n", + "pH of Arterial blood\n", + "[ nan 7.02 7.03 7.14 7.09 6.99 7.1 7.05 7.11 7.04 7.07 7.06 6.98 7.12\n", + " 7.15 7.01 7. 7.08 7.13 6.96 7.17 6.97]\n", + "Neutrophils [#/volume] in Blood by Automated count\n", + "[ nan 2.33 2.55 2.78 2.88 2.48 2.34 2.86 2.53 2.68 2.58 3.06 2.64 2.66\n", + " 3.26 2.72 2.61 2.47 2.75 2.31 2.69 2.98 2.49 2.74 2.83 2.62 2.08 2.59\n", + " 2.87 2.7 2.73 2.99 2.71 3.04 2.95 2.77 2.52 2.91 2.79 2.56 3.1 2.85\n", + " 2.63 2.18 2.38 2.43 3.08 2.4 2.67 2.93 2.54 2.76 2.89 2.82 2.28 2.25\n", + " 2.5 2.3 3.09 2.46 2.97 2.94 2.81 2.65 2.6 2.92 2.27 2.45 2.96 2.57\n", + " 2.36 2.32 2.26 2.22 2.8 2.84 2.24 2.2 2.39 2.9 2.14 2.51 3.01 3.16\n", + " 3. 3.23 3.24]\n", + "Lymphocytes [#/volume] in Blood by Automated count\n", + "[ nan 1. 1.02 0.97 0.98 1.06 1.03 1.01 0.99 0.56 1.07 0.64 0.59 1.05\n", + " 0.61 1.09 0.58 0.63 0.96 1.04 1.08 0.52 0.6 0.57 0.53 0.65 0.55 0.5\n", + " 0.66 0.62 0.54]\n", + "Lactate dehydrogenase [Enzymatic activity/volume] in Serum or Plasma by Lactate to pyruvate reaction\n", + "[ nan 237.9 230.62 254.82 234.23 247.3 249.74 235.6 233.1 257.67\n", + " 226.88 243.15 362.44 239.37 232.82 239.5 247.96 261.87 339.76 235.82\n", + " 363.56 230.18 252.47 246.86 353.84 263.44 363.18 247.23 246.81 248.03\n", + " 359.35 246.96 251.64 242.28 244.4 240.56 366.12 236.07 250.07 248.62\n", + " 226.72 250.32 232.44 322.02 237.02 245.5 249.02 232.87 352.6 350.98\n", + " 238.16 251. 227.18 225.2 349.26 221.36 233.9 246.57 235.15 253.14\n", + " 236.02 257.38 348.04 247.74 243.54 261.2 246.94 225.9 363.01 238.34\n", + " 364.52 242.95 251.86 248.17 233.46 233.22 230.48 236.14 228.48 254.43\n", + " 246.79 246.3 255.97 232.2 378.97 222.32 381.57 245.2 238.56 230.25\n", + " 242.71 222.08 353.06 261.29 220.96 254.63 261.48 243.97 244.35 240.64\n", + " 237.2 256.73 366.77 229.57 254.61 263.59 249.15 264.43 240.76 242.73\n", + " 251.7 244.44 227.32 230.44 225.92 241.63 243.82 243.45 230.32 247.4\n", + " 249.13 232.36 251.4 360.48 227.62 220.56 233.34 259.76 248.08 249.24\n", + " 250.79 247.64 248.93 231.22 264.06 325.2 231.02 230.3 232.22 228.58\n", + " 233.58 234.74 228.52 234.22 256.61 227.64 347.1 251.53 222.22 260.76\n", + " 245.52 255.27 254.34 363.27 238.83 223.2 259.7 227.2 219.12 239.31\n", + " 240.7 367.89 358.92 257.89 224.98 240.84 251.8 226. 258.06 253.47\n", + " 243.6 248.66 228.74 337.47 228.38 251.06 228.26 241.62 231.58 242.02\n", + " 229. 336.5 259.14 240.35 249.7 227.76 246.19 239.67 243.5 251.51\n", + " 242.78 250.9 249.6 257.47 234.64 323.35 228.92 235.44 333.8 244.36\n", + " 233.8 227.74 230.2 236.54 365.58 227.92 246.91 243.27 249.59 226.14\n", + " 242.37 360.11 219.46 251.34 231. 232.9 262.3 230.24 256. 250.25\n", + " 240.4 230.72 248.15 245.18 254.64 224.48 364.41 324.23 359.18 226.58\n", + " 235.23 366.9 221.02 231.66 380.42 342.6 231.46 244.15 229.06 372.57\n", + " 244.73 255.46 347.77]\n", + "Carbon dioxide [Partial pressure] in Arterial blood\n", + "[ nan 40.45 41.06 39.46 40.8 38.71 40.52 41.19 40.59 38.75 39.44 40.38\n", + " 41.44 40.08 40.79 39.95 39.98 40.49 39.58 40.63 42.71 39.61 37.45 38.77\n", + " 40.23 40.87 39. 40.41 38.6 39.26 39.23 40.77 40.55 40.01 39.83 40.68\n", + " 40.7 39.09 40.11 41.26 41.61 40.34 41.56 41.38 41.49 39.51 39.77 40.26\n", + " 40.74 39.02 40.64 39.15 38.81 40.14 40.56 40.19 40.51 39.38 39.5 41.22\n", + " 40.07 39.57 38.36 39.85 40.48 40.54 40.44 39.14 38.56 40.31 42.62 40.46\n", + " 38.83 42.07 39.74 38.98 42.94 39.89 41.8 39.88 40.36 38.96 41.69 40.04\n", + " 38.23 40.06 40.88 39.08 39.59 40.18 40.47 40.53 40.22 40.96 40.16 39.91\n", + " 39.49 37.46 40.24 39.06 39.79 39.41 40.82 39.78]\n", + "Eosinophils/100 leukocytes in Blood by Automated count\n", + "[ nan 4.45 4.4 4.59 3.74 4.35 4.61 4.46 4.51 5.05 4.73 4.72 4.65 4.15\n", + " 4.22 4.81 4.63 4.34 4.37 4.16 4.23 4.04 3.98 4.86 4.66 4.56 4.68 4.12\n", + " 4.83 4.25 4.92 4.75 4.32 4.58 4.11 4.71 4.41 4.21 4.17 4.89 4.19 4.43\n", + " 4.57 4.39 4.5 4.42 4.54 3.91 4.7 4.28 4.31 4.69 4.38 4.55 4.76 4.6\n", + " 4.78 4.29 4.74 4.98 4.93 4.88 4.33 4.94 4.24 4.49 4.48 4.36 4.47 5.08\n", + " 4.03 4.87 4.52 4.62 4.44 4.8 4.64 5.19 4.06 3.95 4.97 4.96 4.53 4.85\n", + " 4.08 3.87 3.92 4.18 4.84 3.84 4.27 3.99 5.06 5.24 4.82 4.79]\n", + "Bicarbonate [Moles/volume] in Arterial blood\n", + "[ nan 24.1 25.27 24.3 24.34 24.36 25.05 24.41 24.58 24.82 24.48 24.25\n", + " 24.22 23.65 24.33 24.69 23.9 24.62 24.89 24.71 24.7 24.09 24.56 24.08\n", + " 24.47 24.55 24.21 23.95 24.72 24.53 23.87 23.8 24.75 24.38 24.57 23.81\n", + " 24.06 24.93 25.07 24.64 23.67 24.23 23.94 24.28 24.44 24.17 24.45 24.37\n", + " 24.54 24.46 24.52 24.49 24.43 24.94 23.68 24.02 25.06 24.19 24.29 24.\n", + " 23.78 24.84 23.85 24.67 24.91 24.63 25.14 25.37 23.5 24.13 24.61 24.81\n", + " 24.15 24.32 24.85 23.55 25.21 23.18 24.76 24.07 24.92 25.15 24.86 24.12\n", + " 23.7 23.71 23.82]\n", + "Respiratory Disorders\n", + "[ 5 1 2 6 0 4 3 13 12 8 7 11 17 16 10 9 15 14]\n", + "Heart and Cardiovascular Diseases\n", + "[0 3 2 5 1 4 6 7 9 8]\n", + "Metabolic and Endocrine Disorders\n", + "[ 4 3 6 2 1 5 9 7 8 0 10 11 12]\n", + "Neurological Disorders\n", + "[2 0 3 4 1 6 5 8 7 9]\n", + "Orthopedic Injuries\n", + "[4 0 2 3 5 1 6 7]\n", + "Mental Health\n", + "[11 8 10 12 7 9 6 5 13 15 14 4 3 16 0 2 17 1]\n", + "Reproductive and Pregnancy\n", + "[ 0 1 15 18 14 23 19 12 2 13 5 16 20 21 24 11 17 8 9 10 3 4 22 6\n", + " 7 25 26]\n", + "Pain Relievers and Analesics\n", + "[3 2 1 4 0 5 7 6 8 9]\n", + "Cardiovascular and Blood Pressure Medications\n", + "[ 2 4 7 5 1 0 8 6 3 11 9 10 12 16 13 15 14 20]\n", + "Injection Medications\n", + "[ 3 1 2 4 6 7 5 8 0 10 9]\n", + "Oral Medications\n", + "[ 2 3 1 8 0 4 5 6 7 9 10 12]\n", + "Other Medications\n", + "[ 5 1 3 2 7 8 0 4 12 9 10 6 11 13 14 15]\n", + "Therapies and Regimes\n", + "[ 9 2 8 7 3 4 6 5 10 11 13 1 12 14 15 0]\n", + "Diagnostic Procedures\n", + "[ 8 7 9 5 10 14 16 1 3 6 15 13 4 19 12 18 2 11 17 20 24 21 25 23\n", + " 22 0]\n", + "Surgical Interventions\n", + "[1 2 0 3 4 5 6 7]\n", + "Patient Care Management\n", + "[ 8 10 13 12 3 6 2 5 9 7 4 11 14 15 1 16 19 0 17]\n", + "age_30t50\n", + "[0 1]\n", + "age_50t70\n", + "[1 0]\n", + "age_gt70\n", + "[0 1]\n", + "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Alanine aminotransferase [Enzymatic activity/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Albumin_abnormal\n", + "[0 1]\n", + "Albumin_normal\n", + "[0 1]\n", + "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Alkaline phosphatase [Enzymatic activity/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Aspartate aminotransferase [Enzymatic activity/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Urine by Test strip_abnormal\n", + "[0 1]\n", + "Bilirubin.total [Mass/volume] in Urine by Test strip_normal\n", + "[0 1]\n", + "Body Mass Index_abnormal\n", + "[1 0]\n", + "Body Mass Index_normal\n", + "[0 1]\n", + "Body temperature_abnormal\n", + "[0 1]\n", + "Body temperature_normal\n", + "[1 0]\n", + "Calcium_normal\n", + "[1 0]\n", + "Calcium [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Carbon Dioxide_abnormal\n", + "[0 1]\n", + "Carbon Dioxide_normal\n", + "[0 1]\n", + "Chloride_abnormal\n", + "[0 1]\n", + "Chloride_normal\n", + "[1 0]\n", + "Chloride [Moles/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Chloride [Moles/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Creatinine_abnormal\n", + "[0 1]\n", + "Creatinine_normal\n", + "[1 0]\n", + "DXA [T-score] Bone density_abnormal\n", + "[0 1]\n", + "DXA [T-score] Bone density_normal\n", + "[1 0]\n", + "Diastolic Blood Pressure_abnormal\n", + "[1 0]\n", + "Diastolic Blood Pressure_normal\n", + "[0 1]\n", + "Erythrocyte distribution width [Entitic volume] by Automated count_abnormal\n", + "[0 1]\n", + "Erythrocyte distribution width [Entitic volume] by Automated count_normal\n", + "[1 0]\n", + "Erythrocyte distribution width [Ratio] by Automated count_abnormal\n", + "[0 1]\n", + "Erythrocyte distribution width [Ratio] by Automated count_normal\n", + "[0 1]\n", + "Erythrocytes [#/volume] in Blood by Automated count_abnormal\n", + "[0 1]\n", + "Erythrocytes [#/volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Ferritin [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Ferritin [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Globulin [Mass/volume] in Serum by calculation_abnormal\n", + "[0 1]\n", + "Globulin [Mass/volume] in Serum by calculation_normal\n", + "[0 1]\n", + "Glomerular filtration rate/1.73 sq M.predicted_abnormal\n", + "[0 1]\n", + "Glomerular filtration rate/1.73 sq M.predicted_normal\n", + "[0 1]\n", + "Glucose_abnormal\n", + "[0 1]\n", + "Glucose_normal\n", + "[1 0]\n", + "Glucose [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Glucose [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Glucose [Mass/volume] in Urine by Test strip_normal\n", + "[0 1]\n", + "Heart rate_abnormal\n", + "[0 1]\n", + "Heart rate_normal\n", + "[1 0]\n", + "Hematocrit [Volume Fraction] of Blood_abnormal\n", + "[0 1]\n", + "Hematocrit [Volume Fraction] of Blood_normal\n", + "[0 1]\n", + "Hematocrit [Volume Fraction] of Blood by Automated count_abnormal\n", + "[0 1]\n", + "Hematocrit [Volume Fraction] of Blood by Automated count_normal\n", + "[1 0]\n", + "Hemoglobin A1c/Hemoglobin.total in Blood_abnormal\n", + "[1 0]\n", + "Hemoglobin A1c/Hemoglobin.total in Blood_normal\n", + "[0 1]\n", + "Hemoglobin [Mass/volume] in Blood_abnormal\n", + "[0 1]\n", + "Hemoglobin [Mass/volume] in Blood_normal\n", + "[1 0]\n", + "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method_abnormal\n", + "[0 1]\n", + "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method_normal\n", + "[0 1]\n", + "High Density Lipoprotein Cholesterol_abnormal\n", + "[1 0]\n", + "High Density Lipoprotein Cholesterol_normal\n", + "[0 1]\n", + "Iron [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Iron [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Iron binding capacity [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Iron binding capacity [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Iron saturation [Mass Fraction] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Iron saturation [Mass Fraction] in Serum or Plasma_normal\n", + "[0 1]\n", + "Left ventricular Ejection fraction_abnormal\n", + "[0 1]\n", + "Left ventricular Ejection fraction_normal\n", + "[0 1]\n", + "Leukocytes [#/volume] in Blood by Automated count_abnormal\n", + "[0 1]\n", + "Leukocytes [#/volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Low Density Lipoprotein Cholesterol_abnormal\n", + "[0 1]\n", + "Low Density Lipoprotein Cholesterol_normal\n", + "[1 0]\n", + "MCH [Entitic mass] by Automated count_abnormal\n", + "[0 1]\n", + "MCH [Entitic mass] by Automated count_normal\n", + "[1 0]\n", + "MCHC [Mass/volume] by Automated count_normal\n", + "[1 0]\n", + "MCV [Entitic volume] by Automated count_normal\n", + "[1 0]\n", + "Magnesium [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Magnesium [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Microalbumin Creatinine Ratio_abnormal\n", + "[0 1]\n", + "Microalbumin Creatinine Ratio_normal\n", + "[0 1]\n", + "NT-proBNP_abnormal\n", + "[0 1]\n", + "Oxygen saturation in Arterial blood_abnormal\n", + "[0 1]\n", + "Pain severity - 0-10 verbal numeric rating [Score] - Reported_abnormal\n", + "[1 0]\n", + "Pain severity - 0-10 verbal numeric rating [Score] - Reported_normal\n", + "[0 1]\n", + "Platelet mean volume [Entitic volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Platelets [#/volume] in Blood by Automated count_abnormal\n", + "[0 1]\n", + "Platelets [#/volume] in Blood by Automated count_normal\n", + "[1 0]\n", + "Polyp size greatest dimension by CAP cancer protocols_abnormal\n", + "[0 1]\n", + "Polyp size greatest dimension by CAP cancer protocols_normal\n", + "[0 1]\n", + "Potassium_normal\n", + "[1 0]\n", + "Prostate specific Ag [Mass/volume] in Serum or Plasma_abnormal\n", + "[0 1]\n", + "Prostate specific Ag [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "Protein [Mass/volume] in Urine by Test strip_abnormal\n", + "[0 1]\n", + "Protein [Mass/volume] in Urine by Test strip_normal\n", + "[0 1]\n", + "Respiratory rate_abnormal\n", + "[0 1]\n", + "Respiratory rate_normal\n", + "[1 0]\n", + "Sodium_normal\n", + "[1 0]\n", + "Specific gravity of Urine by Test strip_abnormal\n", + "[0 1]\n", + "Systolic Blood Pressure_abnormal\n", + "[1 0]\n", + "Systolic Blood Pressure_normal\n", + "[0 1]\n", + "Total Cholesterol_abnormal\n", + "[0 1]\n", + "Total Cholesterol_normal\n", + "[1 0]\n", + "Triglycerides_abnormal\n", + "[0 1]\n", + "Triglycerides_normal\n", + "[1 0]\n", + "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method_abnormal\n", + "[0 1]\n", + "Troponin I.cardiac [Mass/volume] in Serum or Plasma by High sensitivity method_normal\n", + "[0 1]\n", + "US Guidance for biopsy of Prostate_abnormal\n", + "[0 1]\n", + "US Guidance for biopsy of Prostate_normal\n", + "[0 1]\n", + "Urea Nitrogen_normal\n", + "[1 0]\n", + "Urea nitrogen [Mass/volume] in Serum or Plasma_normal\n", + "[0 1]\n", + "pH of Urine by Test strip_normal\n", + "[0 1]\n", + "HER2 [Presence] in Breast cancer specimen by FISH_negative\n", + "[0 1]\n", + "HER2 [Presence] in Breast cancer specimen by FISH_positive\n", + "[0 1]\n", + "Parainfluenza virus 1 RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain_negative\n", + "[0 1]\n", + "Estrogen+Progesterone receptor Ag [Presence] in Tissue by Immune stain_positive\n", + "[0 1]\n", + "Ketones [Mass/volume] in Urine by Test strip_low\n", + "[0 1]\n", + "Ketones [Mass/volume] in Urine by Test strip_medium\n", + "[0 1]\n", + "marital_m\n", + "[1 0]\n", + "marital_s\n", + "[0 1]\n", + "Abuse Status [OMAHA]_no\n", + "[0 1]\n", + "Abuse Status [OMAHA]_severe\n", + "[0 1]\n", + "Interleukin 6 [Mass/volume] in Serum or Plasma_5.33\n", + "[0 1]\n", + "Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain_negative\n", + "[0 1]\n", + "Progesterone receptor Ag [Presence] in Breast cancer specimen by Immune stain_positive\n", + "[0 1]\n", + "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "Influenza virus A RNA [Presence] in Respiratory specimen by NAA with probe detection_positive\n", + "[0 1]\n", + "Parainfluenza virus 2 RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "Response to cancer treatment_improving\n", + "[0 1]\n", + "Response to cancer treatment_worsening\n", + "[0 1]\n", + "Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain_negative\n", + "[0 1]\n", + "Estrogen receptor Ag [Presence] in Breast cancer specimen by Immune stain_positive\n", + "[0 1]\n", + "Hemoglobin [Presence] in Urine by Test strip_negative\n", + "[0 1]\n", + "Hemoglobin [Presence] in Urine by Test strip_positive\n", + "[0 1]\n", + "Housing status_homeless\n", + "[0 1]\n", + "Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "Influenza virus B RNA [Presence] in Respiratory specimen by NAA with probe detection_positive\n", + "[0 1]\n", + "Objective assessment of cardiovascular disease NYHA_minimal\n", + "[0 1]\n", + "Objective assessment of cardiovascular disease NYHA_mod-severe\n", + "[0 1]\n", + "Objective assessment of cardiovascular disease NYHA_severe\n", + "[0 1]\n", + "Drugs of abuse 5 panel - Urine by Screen method_negative\n", + "[0 1]\n", + "Drugs of abuse 5 panel - Urine by Screen method_positive\n", + "[0 1]\n", + "Leukocyte esterase [Presence] in Urine by Test strip_negative\n", + "[0 1]\n", + "Adenovirus A+B+C+D+E DNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "Protein [Presence] in Urine by Test strip_1+\n", + "[0 1]\n", + "Protein [Presence] in Urine by Test strip_2+\n", + "[0 1]\n", + "Protein [Presence] in Urine by Test strip_3+\n", + "[0 1]\n", + "Appearance of Urine_cloudy\n", + "[0 1]\n", + "Capillary refill [Time] of Nail bed_increased\n", + "[0 1]\n", + "Treatment status Cancer_changed\n", + "[0 1]\n", + "Gram positive blood culture panel by Probe in Positive blood culture_positive\n", + "[0 1]\n", + "Glucose [Presence] in Urine by Test strip_2+\n", + "[0 1]\n", + "Respiratory syncytial virus RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "Functional capacity NYHA_classi\n", + "[0 1]\n", + "Functional capacity NYHA_classii\n", + "[0 1]\n", + "Functional capacity NYHA_classiii\n", + "[0 1]\n", + "Functional capacity NYHA_classiv\n", + "[0 1]\n", + "Color of Urine_brown\n", + "[0 1]\n", + "Color of Urine_reddish\n", + "[0 1]\n", + "Nitrite [Presence] in Urine by Test strip_negative\n", + "[0 1]\n", + "Tumor marker Cancer_negative\n", + "[0 1]\n", + "Tobacco smoking status NHIS_former\n", + "[1 0]\n", + "Tobacco smoking status NHIS_never\n", + "[0 1]\n", + "gender_f\n", + "[0 1]\n", + "gender_m\n", + "[1 0]\n", + "HIV status_negative\n", + "[0 1]\n", + "HIV status_positive\n", + "[0 1]\n", + "Are you covered by health insurance or some other kind of health care plan [PhenX]_no\n", + "[0 1]\n", + "Are you covered by health insurance or some other kind of health care plan [PhenX]_yes\n", + "[0 1]\n", + "Human metapneumovirus RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "Ketones [Presence] in Urine by Test strip_1+\n", + "[0 1]\n", + "Ketones [Presence] in Urine by Test strip_2+\n", + "[0 1]\n", + "Ketones [Presence] in Urine by Test strip_3+\n", + "[0 1]\n", + "Ketones [Presence] in Urine by Test strip_trace\n", + "[0 1]\n", + "Clarity of Urine_cloudy\n", + "[0 1]\n", + "Clarity of Urine_translucent\n", + "[0 1]\n", + "Stage group.clinical Cancer_earlystage\n", + "[0 1]\n", + "Stage group.clinical Cancer_latestage\n", + "[0 1]\n", + "Rhinovirus RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "HER2 [Presence] in Breast cancer specimen by Immune stain_negative\n", + "[0 1]\n", + "HER2 [Presence] in Breast cancer specimen by Immune stain_positive\n", + "[0 1]\n", + "Smokes tobacco daily_True\n", + "[0 1]\n", + "Parainfluenza virus 3 RNA [Presence] in Respiratory specimen by NAA with probe detection_negative\n", + "[0 1]\n", + "SARS-CoV-2 RNA Pnl Resp NAA+probe_False\n", + "[0 1]\n", + "SARS-CoV-2 RNA Pnl Resp NAA+probe_True\n", + "[0 1]\n", + "Influenza virus A Ag [Presence] in Nasopharynx by Rapid immunoassay_False\n", + "[0 1]\n", + "Influenza virus A Ag [Presence] in Nasopharynx by Rapid immunoassay_True\n", + "[0 1]\n", + "Influenza virus B Ag [Presence] in Nasopharynx by Rapid immunoassay_False\n", + "[0 1]\n", + "Influenza virus B Ag [Presence] in Nasopharynx by Rapid immunoassay_True\n", + "[0 1]\n" + ] + } + ], + "source": [ + "for col in df2.columns:\n", + " print(col)\n", + " print(df2[col].unique())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other NaN values will be filled with median values." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "df2 = df2.fillna(df2.median())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Saving medians to fill validation data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Corelations" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "X_train = df2.drop('label', axis=1)\n", + "y_train = df2['label']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Correlations between features" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "X_corr = X_train.corr().abs()\n", + "\n", + "high_corr = []\n", + "to_drop = set()\n", + "\n", + "for i in range(len(X_corr.columns)):\n", + " for j in range(i+1, len(X_corr.columns)):\n", + " if X_corr.iloc[i, j] > .98:\n", + " col_1 = X_corr.columns[i]\n", + " col_2 = X_corr.columns[j]\n", + " corr = X_corr.iloc[i, j]\n", + " high_corr.append((col_1, col_2, corr))\n", + " to_drop.add(col_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Columns with correlation > 0.98:\n", + "Bilirubin.total [Mass/volume] in Serum or Plasma_abnormal <-> Ferritin [Mass/volume] in Serum or Plasma_abnormal : 0.9959728153860173\n", + "Body Mass Index_abnormal <-> Body Mass Index_normal : 0.9839742527296425\n", + "Calcium_normal <-> Urea Nitrogen_normal : 1.0\n", + "Calcium [Mass/volume] in Serum or Plasma_normal <-> Urea nitrogen [Mass/volume] in Serum or Plasma_normal : 1.0\n", + "Diastolic Blood Pressure_abnormal <-> Diastolic Blood Pressure_normal : 0.9975674506121094\n", + "Diastolic Blood Pressure_abnormal <-> Systolic Blood Pressure_abnormal : 0.9926660729264255\n", + "Diastolic Blood Pressure_abnormal <-> Systolic Blood Pressure_normal : 0.9902281695048288\n", + "Diastolic Blood Pressure_normal <-> Systolic Blood Pressure_abnormal : 0.9902495007996511\n", + "Diastolic Blood Pressure_normal <-> Systolic Blood Pressure_normal : 0.9926925140325418\n", + "Ferritin [Mass/volume] in Serum or Plasma_normal <-> Iron [Mass/volume] in Serum or Plasma_normal : 0.9889332332718642\n" + ] + } + ], + "source": [ + "print(\"Columns with correlation > 0.98:\")\n", + "for i in range(10):\n", + " print(high_corr[i][0], \"<->\", high_corr[i][1], \":\", high_corr[i][2])" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "47" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(to_drop)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will drop one of the features if they are highly correlated." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "X_train.drop(to_drop, axis=1, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Corelations between previously created features and target" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "def get_sorted_correlations(X, cols, target):\n", + " # Calculate correlations with target for each column in cols\n", + " correlations = {}\n", + " for col in cols:\n", + " if col not in X.columns:\n", + " print(f\"Column '{col}' not found in the DataFrame\")\n", + " continue\n", + " if X[col].dropna().nunique() > 1:\n", + " if X[col].dtype == 'object':\n", + " X[col] = X[col].astype('category').cat.codes\n", + " correlation = target.dropna().corr(X[col].dropna())\n", + " correlations[col] = round(correlation, 2)\n", + "\n", + " # Sort correlations in descending order\n", + " sorted_correlations = sorted(correlations.items(), key=lambda x: abs(x[1]), reverse=True)\n", + " \n", + " return sorted_correlations\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Column Correlation with Target\n", + "--------------------------------------------- -------------------------\n", + "Diagnostic Procedures -0.52\n", + "Patient Care Management -0.5\n", + "Metabolic and Endocrine Disorders -0.44\n", + "Other Medications -0.44\n", + "Injection Medications -0.36\n", + "Cardiovascular and Blood Pressure Medications -0.34\n", + "Heart and Cardiovascular Diseases -0.33\n", + "Neurological Disorders -0.33\n", + "Reproductive and Pregnancy -0.33\n", + "Respiratory Disorders -0.32\n", + "Mental Health -0.28\n", + "Pain Relievers and Analesics -0.28\n", + "Therapies and Regimes -0.23\n", + "Surgical Interventions -0.23\n", + "Orthopedic Injuries -0.2\n", + "Oral Medications -0.18\n" + ] + } + ], + "source": [ + "categories_correlations = get_sorted_correlations(X_train, categories, y_train)\n", + "\n", + "print(tabulate(categories_correlations, headers=[\"Column\", \"Correlation with Target\"], tablefmt=\"simple\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Saving medians to fill validation data." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "X_train.median()\n", + "with open('medians.json', 'w') as f:\n", + " json.dump(X_train.median().to_dict(), f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### First modeling" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "# save x_train and y_train to csv\n", + "X_train.to_csv('../transformed_data/X_train.csv', index=False)\n", + "y_train.to_csv('../transformed_data/y_train.csv', index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.neural_network import MLPClassifier\n", + "from sklearn.naive_bayes import GaussianNB, BernoulliNB\n", + "from sklearn.ensemble import GradientBoostingClassifier, AdaBoostClassifier, RandomForestClassifier\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.svm import SVC\n", + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.ensemble import ExtraTreesClassifier, BaggingClassifier\n", + "from sklearn.naive_bayes import GaussianNB" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "from tabulate import tabulate\n", + "from sklearn.metrics import accuracy_score, recall_score, precision_score, f1_score, roc_auc_score\n", + "def calculate_metrics(model, X_train, y_train, X_val, y_val):\n", + " model.fit(X_train, y_train)\n", + " predictions = model.predict(X_val)\n", + " accuracy = accuracy_score(y_val, predictions)\n", + " recall = recall_score(y_val, predictions)\n", + " precision = precision_score(y_val, predictions)\n", + " f1 = f1_score(y_val, predictions)\n", + " auc = roc_auc_score(y_val, model.predict_proba(X_val)[:, 1])\n", + " gini = 2 * auc - 1\n", + " return accuracy, recall, precision, f1, auc, gini\n", + "\n", + "def print_metrics(models, X_train, y_train, X_val, y_val):\n", + " results = pd.DataFrame(columns=['Model', 'Accuracy', 'Recall', 'Precision', 'F1 Score', 'AUC', 'Gini'])\n", + " for model in models:\n", + " accuracy, recall, precision, f1, auc, gini = calculate_metrics(model, X_train, y_train, X_val, y_val)\n", + " results.loc[len(results)] = {'Model': model.__class__.__name__,\n", + " 'Accuracy': accuracy,\n", + " 'Recall': recall,\n", + " 'Precision': precision,\n", + " 'F1 Score': f1,\n", + " 'AUC': auc,\n", + " 'Gini': gini}\n", + " print(tabulate(results, headers='keys', tablefmt='simple'))" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "models = [DecisionTreeClassifier(), \n", + " MLPClassifier(),\n", + " GaussianNB(), \n", + " GradientBoostingClassifier(), \n", + " AdaBoostClassifier(),\n", + " RandomForestClassifier(),\n", + " LogisticRegression(),\n", + " SVC(probability=True),\n", + " KNeighborsClassifier(),\n", + " ExtraTreesClassifier(),\n", + " BaggingClassifier(),\n", + " BernoulliNB()\n", + " ]" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training data\n", + " Model Accuracy Recall Precision F1 Score AUC Gini\n", + "-- -------------------------- ---------- -------- ----------- ---------- -------- --------\n", + " 0 DecisionTreeClassifier 1 1 1 1 1 1\n", + " 1 MLPClassifier 0.984527 0.940122 0.998607 0.968483 0.999251 0.998502\n", + " 2 GaussianNB 0.61649 0.983392 0.395987 0.564617 0.745811 0.491622\n", + " 3 GradientBoostingClassifier 0.994584 0.983392 0.995135 0.989228 0.999602 0.999205\n", + " 4 AdaBoostClassifier 0.992153 0.978147 0.990704 0.984385 0.999619 0.999238\n", + " 5 RandomForestClassifier 1 1 1 1 1 1\n", + " 6 LogisticRegression 0.982317 0.95542 0.974153 0.964695 0.996748 0.993495\n", + " 7 SVC 0.946729 0.789336 1 0.882267 0.963216 0.926432\n", + " 8 KNeighborsClassifier 0.979443 0.923077 0.995287 0.957823 0.998893 0.997786\n", + " 9 ExtraTreesClassifier 1 1 1 1 1 1\n", + "10 BaggingClassifier 0.999005 0.996503 0.999562 0.99803 0.999998 0.999995\n", + "11 BernoulliNB 0.79233 0.956731 0.551524 0.699696 0.964519 0.929039\n" + ] + } + ], + "source": [ + "print('Training data')\n", + "print_metrics(models, X_train, y_train, X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "from sklearn import metrics\n", + "def roc_curve_plot(models, X_train, y_train, X_val, y_val):\n", + " plt.figure(0).clf()\n", + " plt.figure(figsize=(8, 8))\n", + " plt.title(\"ROC Curve for Different Models (Training Data)\")\n", + " for model in models:\n", + " model.fit(X_train, y_train)\n", + " y_pred = model.predict_proba(X_val)[:, 1]\n", + " fpr, tpr, _ = metrics.roc_curve(y_val, y_pred)\n", + " auc = round(metrics.roc_auc_score(y_val, y_pred), 4)\n", + " model_name = model.__class__.__name__ \n", + " if model_name == 'Pipeline':\n", + " model_name = model['model'].__class__.__name__\n", + " plt.plot(fpr, tpr, label=f\"{model_name}, AUC={auc}\")\n", + " plt.legend(framealpha=0.0)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<Figure size 432x288 with 0 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 576x576 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "roc_curve_plot(models, X_train, y_train, X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cross Validation" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import cross_val_score, StratifiedKFold" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "def cross_validate_calculate_scores(models, X, y, scoring):\n", + " results = {}\n", + " skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)\n", + " for model in models:\n", + " model_name = model.__class__.__name__\n", + " for score, score_name in scoring.items(): \n", + " scores_result = cross_val_score(model, X, y, cv=skf, scoring=score)\n", + " results[(model_name, score_name)] = scores_result\n", + " \n", + " return results" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "scoring = {'roc_auc': 'roc_auc', 'f1': 'f1', 'accuracy': 'accuracy', 'precision': 'precision', 'recall': 'recall'}\n", + "cross_val_scores = cross_validate_calculate_scores(models, X_train, y_train, scoring)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "def plot_cross_validate_scores(cross_val_scores, scoring):\n", + " sns.set_palette(sns.color_palette('hls', 8))\n", + " num_metrics = len(scoring)\n", + " fig, axes = plt.subplots(num_metrics, 1, figsize=(10, 3 * num_metrics), sharex=True, sharey=False)\n", + "\n", + " scores_by_metric = {}\n", + " for (model_name, metric_name), scores in cross_val_scores.items():\n", + " if metric_name not in scores_by_metric:\n", + " scores_by_metric[metric_name] = {}\n", + " scores_by_metric[metric_name][model_name] = scores\n", + "\n", + " for i, (metric_name, scores) in enumerate(scores_by_metric.items()):\n", + " min_score = min(min(scores) for scores in scores_by_metric[metric_name].values())\n", + " max_score = max(max(scores) for scores in scores_by_metric[metric_name].values())\n", + " sns.boxplot(data=list(scores.values()), ax=axes[i])\n", + " axes[i].set_ylim(min_score - 0.01, max_score + 0.01)\n", + " axes[i].set_xticklabels(scores.keys(), rotation=45, fontsize=10)\n", + " axes[i].set_title(metric_name)\n", + " axes[i].set_ylabel('Score')\n", + " fig.suptitle('Cross-validation scores')\n", + " plt.tight_layout()\n", + " plt.show()\n", + " return scores_by_metric\n" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 720x1080 with 5 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "scores_by_metric = plot_cross_validate_scores(cross_val_scores, scoring)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model Metric Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 Mean\n", + "-------------------------- --------- -------- -------- -------- -------- -------- --------\n", + "DecisionTreeClassifier roc_auc 0.979873 0.981687 0.971879 0.982433 0.977671 0.978709\n", + "MLPClassifier roc_auc 0.998912 0.99887 0.998763 0.998587 0.997632 0.998553\n", + "GaussianNB roc_auc 0.752191 0.737028 0.743017 0.748565 0.743148 0.74479\n", + "GradientBoostingClassifier roc_auc 0.997837 0.99876 0.997455 0.996957 0.997898 0.997781\n", + "AdaBoostClassifier roc_auc 0.995736 0.998194 0.997287 0.997755 0.997959 0.997386\n", + "RandomForestClassifier roc_auc 0.998537 0.999064 0.998236 0.997711 0.996173 0.997944\n", + "LogisticRegression roc_auc 0.99704 0.996559 0.996226 0.995583 0.995554 0.996192\n", + "SVC roc_auc 0.969975 0.963131 0.959823 0.960533 0.958628 0.962418\n", + "KNeighborsClassifier roc_auc 0.982652 0.978629 0.97595 0.980412 0.982138 0.979957\n", + "ExtraTreesClassifier roc_auc 0.997683 0.998605 0.997287 0.995945 0.9968 0.997264\n", + "BaggingClassifier roc_auc 0.992643 0.996265 0.993824 0.992671 0.992852 0.993651\n", + "BernoulliNB roc_auc 0.964625 0.971294 0.959676 0.958243 0.9649 0.963748\n", + "DecisionTreeClassifier f1 0.962882 0.970936 0.965746 0.976898 0.970492 0.969391\n", + "MLPClassifier f1 0.967379 0.973568 0.963293 0.982301 0.969365 0.971181\n", + "GaussianNB f1 0.570521 0.560549 0.563046 0.566709 0.56391 0.564947\n", + "GradientBoostingClassifier f1 0.976948 0.980349 0.971047 0.982301 0.981257 0.97838\n", + "AdaBoostClassifier f1 0.972497 0.984615 0.976796 0.983389 0.983498 0.980159\n", + "RandomForestClassifier f1 0.976693 0.982379 0.965129 0.978818 0.972004 0.975005\n", + "LogisticRegression f1 0.963374 0.95747 0.963696 0.956522 0.960265 0.960265\n", + "SVC f1 0.877451 0.891041 0.878825 0.882641 0.866005 0.879193\n", + "KNeighborsClassifier f1 0.952273 0.937571 0.938073 0.946163 0.941176 0.943051\n", + "ExtraTreesClassifier f1 0.95838 0.969967 0.959459 0.96614 0.972004 0.96519\n", + "BaggingClassifier f1 0.971491 0.979235 0.975501 0.976744 0.984513 0.977497\n", + "BernoulliNB f1 0.702962 0.707965 0.688958 0.693484 0.702746 0.699223\n", + "DecisionTreeClassifier accuracy 0.98011 0.982873 0.983425 0.986733 0.983969 0.983422\n", + "MLPClassifier accuracy 0.962431 0.988398 0.979558 0.99005 0.983416 0.980771\n", + "GaussianNB accuracy 0.626519 0.61105 0.61326 0.622996 0.615257 0.617816\n", + "GradientBoostingClassifier accuracy 0.988398 0.990608 0.985635 0.99005 0.990603 0.989059\n", + "AdaBoostClassifier accuracy 0.986188 0.992265 0.988398 0.991708 0.991708 0.990053\n", + "RandomForestClassifier accuracy 0.986188 0.991713 0.98232 0.987839 0.987839 0.98718\n", + "LogisticRegression accuracy 0.981768 0.978453 0.981768 0.978441 0.9801 0.980106\n", + "SVC accuracy 0.944751 0.950276 0.945304 0.946932 0.940299 0.945512\n", + "KNeighborsClassifier accuracy 0.976796 0.969613 0.970166 0.974019 0.971808 0.97248\n", + "ExtraTreesClassifier accuracy 0.981215 0.98674 0.98232 0.981758 0.98618 0.983643\n", + "BaggingClassifier accuracy 0.98453 0.990608 0.98011 0.988944 0.989497 0.986738\n", + "BernoulliNB accuracy 0.795028 0.799448 0.779006 0.789386 0.796573 0.791888\n", + "DecisionTreeClassifier precision 0.958874 0.951579 0.971366 0.971678 0.977974 0.966294\n", + "MLPClassifier precision 0.995413 0.94926 0.969631 0.993258 0.990991 0.979711\n", + "GaussianNB precision 0.40233 0.392483 0.394231 0.399284 0.395083 0.396682\n", + "GradientBoostingClassifier precision 0.98234 0.980349 0.990909 0.993289 0.988889 0.987155\n", + "AdaBoostClassifier precision 0.980044 0.99115 0.988814 0.995516 0.988938 0.988893\n", + "RandomForestClassifier precision 0.997727 0.993333 0.997685 0.997727 0.997706 0.996836\n", + "LogisticRegression precision 0.979684 0.956427 0.971175 0.975 0.96882 0.970221\n", + "SVC precision 1 1 1 1 1 1\n", + "KNeighborsClassifier precision 0.992891 0.976359 0.987923 0.992788 0.995122 0.989017\n", + "ExtraTreesClassifier precision 0.995338 0.988662 0.993039 0.995349 0.997696 0.994017\n", + "BaggingClassifier precision 0.98234 0.973856 0.986456 0.98441 0.997758 0.984964\n", + "BernoulliNB precision 0.554994 0.56051 0.535024 0.548346 0.556978 0.55117\n", + "DecisionTreeClassifier recall 0.960699 0.980349 0.960699 0.971554 0.962801 0.96722\n", + "MLPClassifier recall 0.962882 0.975983 0.973799 0.934354 0.969365 0.963277\n", + "GaussianNB recall 0.980349 0.980349 0.984716 0.97593 0.984683 0.981206\n", + "GradientBoostingClassifier recall 0.971616 0.980349 0.951965 0.971554 0.973742 0.969845\n", + "AdaBoostClassifier recall 0.965066 0.978166 0.965066 0.971554 0.978118 0.971594\n", + "RandomForestClassifier recall 0.956332 0.969432 0.941048 0.960613 0.954048 0.956295\n", + "LogisticRegression recall 0.947598 0.958515 0.956332 0.938731 0.95186 0.950607\n", + "SVC recall 0.781659 0.803493 0.783843 0.789934 0.763676 0.784521\n", + "KNeighborsClassifier recall 0.914847 0.901747 0.893013 0.90372 0.892779 0.901221\n", + "ExtraTreesClassifier recall 0.932314 0.958515 0.934498 0.936543 0.947484 0.941871\n", + "BaggingClassifier recall 0.965066 0.971616 0.947598 0.960613 0.978118 0.964602\n", + "BernoulliNB recall 0.958515 0.960699 0.967249 0.943107 0.95186 0.956286\n" + ] + } + ], + "source": [ + "headers = [\"Model\", \"Metric\", \"Fold 1\", \"Fold 2\", \"Fold 3\", \"Fold 4\", \"Fold 5\", \"Mean\"]\n", + "\n", + "table_data = []\n", + "for metric, classifiers in scores_by_metric.items():\n", + " for classifier, scores in classifiers.items():\n", + " row = [classifier, metric] + list(scores) + [sum(scores) / len(scores)]\n", + " table_data.append(row)\n", + "\n", + "print(tabulate(table_data, headers=headers))" + ] + } + ], + "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.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}