def create_outcomes_tables(POP): OUTCOMES = POP[POP['SUBJECT_ICUSTAY_SEQ'] == 1] OUTCOMES = OUTCOMES[[ 'SUBJECT_ID', 'ICUSTAY_ID', 'ICUSTAY_INTIME', 'ICUSTAY_OUTTIME', 'HOSPITAL_EXPIRE_FLG', 'DOD', 'ICUSTAY_ADMIT_AGE', 'GENDER', 'SAPSI_FIRST', 'WEIGHT_FIRST', 'SOFA_FIRST', 'ICUSTAY_FIRST_SERVICE', 'PACEMAKER', 'RISKFALLS' ]] # Conservative assumption : if no data, we assume they didn't die. OUTCOMES['HOSPITAL_EXPIRE_FLG'].fillna('N', inplace=True) # For Hospital expire flag, we need to replace the values by hand because we care what order. OUTCOMES['HOSPITAL_EXPIRE_FLG'].replace('N', 0, inplace=True) OUTCOMES['HOSPITAL_EXPIRE_FLG'].replace('Y', 1, inplace=True) # Change the columns to be categories, not strings OUTCOMES['ICUSTAY_FIRST_SERVICE'] = process.discretize_categories( OUTCOMES['ICUSTAY_FIRST_SERVICE']) OUTCOMES['GENDER'] = process.discretize_categories(OUTCOMES['GENDER']) OUTCOMES['PACEMAKER'] = process.discretize_categories( OUTCOMES['PACEMAKER']) OUTCOMES['RISKFALLS'] = process.discretize_categories( OUTCOMES['RISKFALLS']) # Add BMI to the table OUTCOMES['BMI'] = POP['WEIGHT_FIRST'] / (POP['HEIGHT'] * POP['HEIGHT']) return OUTCOMES
def create_demographics_tables(POP): # Do some extra constraining on the POP set DEMOGRAPHIC = POP[POP['SUBJECT_ICUSTAY_SEQ'] == 1] DEMOGRAPHIC = DEMOGRAPHIC[['SUBJECT_ID', 'ICUSTAY_ID', 'ICUSTAY_INTIME', 'ICUSTAY_OUTTIME', 'ICUSTAY_ADMIT_AGE', 'GENDER', 'SAPSI_FIRST', 'WEIGHT_FIRST', 'SOFA_FIRST', 'ICUSTAY_FIRST_SERVICE', 'PACEMAKER', 'RISKFALLS']] # Change the columns to be categories, not strings DEMOGRAPHIC['ICUSTAY_FIRST_SERVICE'] = process.discretize_categories(DEMOGRAPHIC['ICUSTAY_FIRST_SERVICE']) DEMOGRAPHIC['GENDER'] = process.discretize_categories(DEMOGRAPHIC['GENDER']) DEMOGRAPHIC['PACEMAKER'] = process.discretize_categories(DEMOGRAPHIC['PACEMAKER']) DEMOGRAPHIC['RISKFALLS'] = process.discretize_categories(DEMOGRAPHIC['RISKFALLS']) # Add BMI to the table DEMOGRAPHIC['BMI'] = POP['WEIGHT_FIRST'] / (POP['HEIGHT'] * POP['HEIGHT']) return DEMOGRAPHIC
def create_outcomes_tables(POP): OUTCOMES = POP[POP['SUBJECT_ICUSTAY_SEQ'] == 1] OUTCOMES = OUTCOMES[['SUBJECT_ID', 'ICUSTAY_ID', 'ICUSTAY_INTIME', 'ICUSTAY_OUTTIME', 'HOSPITAL_EXPIRE_FLG', 'DOD', 'ICUSTAY_ADMIT_AGE', 'GENDER', 'SAPSI_FIRST', 'WEIGHT_FIRST', 'SOFA_FIRST', 'ICUSTAY_FIRST_SERVICE', 'PACEMAKER', 'RISKFALLS']] # Conservative assumption : if no data, we assume they didn't die. OUTCOMES['HOSPITAL_EXPIRE_FLG'].fillna('N', inplace=True) # For Hospital expire flag, we need to replace the values by hand because we care what order. OUTCOMES['HOSPITAL_EXPIRE_FLG'].replace('N', 0, inplace=True) OUTCOMES['HOSPITAL_EXPIRE_FLG'].replace('Y', 1, inplace=True) # Change the columns to be categories, not strings OUTCOMES['ICUSTAY_FIRST_SERVICE'] = process.discretize_categories(OUTCOMES['ICUSTAY_FIRST_SERVICE']) OUTCOMES['GENDER'] = process.discretize_categories(OUTCOMES['GENDER']) OUTCOMES['PACEMAKER'] = process.discretize_categories(OUTCOMES['PACEMAKER']) OUTCOMES['RISKFALLS'] = process.discretize_categories(OUTCOMES['RISKFALLS']) # Add BMI to the table OUTCOMES['BMI'] = POP['WEIGHT_FIRST'] / (POP['HEIGHT'] * POP['HEIGHT']) return OUTCOMES
def create_demographics_tables(POP): # Do some extra constraining on the POP set DEMOGRAPHIC = POP[POP['SUBJECT_ICUSTAY_SEQ'] == 1] DEMOGRAPHIC = DEMOGRAPHIC[[ 'SUBJECT_ID', 'ICUSTAY_ID', 'ICUSTAY_INTIME', 'ICUSTAY_OUTTIME', 'ICUSTAY_ADMIT_AGE', 'GENDER', 'SAPSI_FIRST', 'WEIGHT_FIRST', 'SOFA_FIRST', 'ICUSTAY_FIRST_SERVICE', 'PACEMAKER', 'RISKFALLS' ]] # Change the columns to be categories, not strings DEMOGRAPHIC['ICUSTAY_FIRST_SERVICE'] = process.discretize_categories( DEMOGRAPHIC['ICUSTAY_FIRST_SERVICE']) DEMOGRAPHIC['GENDER'] = process.discretize_categories( DEMOGRAPHIC['GENDER']) DEMOGRAPHIC['PACEMAKER'] = process.discretize_categories( DEMOGRAPHIC['PACEMAKER']) DEMOGRAPHIC['RISKFALLS'] = process.discretize_categories( DEMOGRAPHIC['RISKFALLS']) # Add BMI to the table DEMOGRAPHIC['BMI'] = POP['WEIGHT_FIRST'] / (POP['HEIGHT'] * POP['HEIGHT']) return DEMOGRAPHIC