У меня есть следующий df:
Это количество прописанного лекарства до и после даты индекса пациента.
PREINDEX_N_DRUG_A_TAG POSTINDEX_N_DRUG_A_TAG PREINDEX_N_DRUG_B_TAG POSTINDEX_N_DRUG_B_TAG PREINDEX_N_DRUG_C_TAG POSTINDEX_N_DRUG_C_TAG
0 8 0 8 0 8
0 2 4 0 8 4
2 0 0 4 3 5
Мне нравится фильтровать пациентов по различным комбинациям и критериям.
Я сделал жесткую функцию следующим образом:
def filter_data(df):
df = df[
(df['PREINDEX_N_DRUG_A_TAG']>8) &
(df['POSTINDEX_N_DRUG_A_TAG']==2) &
(df['PREINDEX_N_DRUG_B_TAG']==0) &
(df['POSTINDEX_N_DRUG_B_TAG']>=2)
]
Тем не менее, я хочу сделать функцию более гибкой, чтобы пользователи могли указать, сколько критериев и форма критериев.
Например, я бы хотел, чтобы функция использовала command_dict
информацию, такую как
command_dict = {
'Command1': ['PREINDEX_N_DRUG_A_TAG', '>', 8, '&'],
'Command2': ['POSTINDEX_N_DRUG_A_TAG', '==', 2, '&'],
'Command3': ['PREINDEX_N_DRUG_B_TAG', '==', 0, '&'],
'Command4': ['POSTINDEX_N_DRUG_B_TAG', '>=', 2, '&'],
'Command5': ['PREINDEX_N_DRUG_A_TAG', '>', 8, '&'],
'Command6': ['PREINDEX_N_DRUG_A_TAG', '>', 8, '&'],
}
И сможет выполнять функцию как в жесткой функции.