【发布时间】:2019-09-24 13:48:51
【问题描述】:
我有以下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, '&'],
}
并且能够执行刚性功能中的功能。
【问题讨论】:
标签: python python-3.x pandas filter functional-programming