如何为Python和datafram提供灵活的命令过滤器

2024-09-27 01:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下资料:

这些是患者索引日期前后处方药的计数

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, '&'],
    }

并且能够像刚性函数一样执行函数


Tags: 函数患者df标准deftagdictcommand

热门问题