如何使用apply in pandas对代码进行分类?

2024-05-21 05:30:46 发布

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

我有一个包含以下内容的数据框:-

measures = ['BRQPP1', 'BRQPP110', 'BRQPP112', 'BRQPP236', 'BRQPP370', 'BRQPP438', 'ECQM122V7', 'ECQM124V7', 'ECQM125V7', 'ECQM128V7', 'ECQM129V8', 'ECQM131V7', 'ECQM133V7', 'ECQM134V7', 'ECQM135V7', 'ECQM142V7', 'ECQM143V7', 'ECQM144V7', 'ECQM145V7', 'ECQM146V7', 'ECQM147V8', 'ECQM149V7', 'ECQM153V7', 'ECQM154V7', 'ECQM157V7', 'ECQM161V7', 'ECQM165V7', 'ECQM177V7', 'ECQM249V1', 'ECQM347V2', 'ECQM50V7', 'ECQM56V7', 'ECQM645V2', 'ECQM66V7', 'ECQM771V1', 'ECQM90V8', 'GLQPP1', 'GLQPP110', 'GLQPP112', 'GLQPP236', 'GLQPP370', 'GLQPP438', 'LHQPP1', 'LHQPP110', 'LHQPP112', 'LHQPP236', 'LHQPP370', 'LHQPP438', 'QPP1', 'QPP102', 'QPP104', 'QPP110', 'QPP112', 'QPP116', 'QPP117', 'QPP118', 'QPP119', 'QPP12', 'QPP126', 'QPP127', 'QPP137', 'QPP138', 'QPP14', 'QPP141', 'QPP143', 'QPP144', 'QPP145', 'QPP146', 'QPP147', 'QPP154', 'QPP155', 'QPP164', 'QPP167', 'QPP168', 'QPP176', 'QPP177', 'QPP178', 'QPP180', 'QPP182', 'QPP185', 'QPP187', 'QPP19', 'QPP191', 'QPP195', 'QPP205', 'QPP21', 'QPP218', 'QPP219', 'QPP222', 'QPP225', 'QPP23', 'QPP236', 'QPP24', 'QPP243', 'QPP249', 'QPP250', 'QPP254', 'QPP258', 'QPP259', 'QPP260', 'QPP261', 'QPP264', 'QPP265', 'QPP268', 'QPP275', 'QPP277', 'QPP279', 'QPP282', 'QPP283', 'QPP286', 'QPP288', 'QPP290', 'QPP291', 'QPP293', 'QPP303', 'QPP304', 'QPP320', 'QPP322', 'QPP323', 'QPP324', 'QPP326', 'QPP331', 'QPP332', 'QPP333', 'QPP335', 'QPP336', 'QPP337', 'QPP338', 'QPP340', 'QPP342', 'QPP348', 'QPP350', 'QPP351', 'QPP354', 'QPP355', 'QPP356', 'QPP357', 'QPP358', 'QPP360', 'QPP364', 'QPP370', 'QPP374', 'QPP383', 'QPP384', 'QPP385', 'QPP386', 'QPP387', 'QPP389', 'QPP39', 'QPP390', 'QPP391', 'QPP392', 'QPP393', 'QPP395', 'QPP396', 'QPP397', 'QPP398', 'QPP400', 'QPP401', 'QPP404', 'QPP405', 'QPP406', 'QPP408', 'QPP409', 'QPP410', 'QPP412', 'QPP413', 'QPP414', 'QPP415', 'QPP416', 'QPP418', 'QPP419', 'QPP420', 'QPP421', 'QPP422', 'QPP424', 'QPP429', 'QPP430', 'QPP432', 'QPP433', 'QPP434', 'QPP435', 'QPP436', 'QPP437', 'QPP438', 'QPP439', 'QPP440', 'QPP441', 'QPP443', 'QPP444', 'QPP445', 'QPP448', 'QPP450', 'QPP451', 'QPP452', 'QPP453', 'QPP455', 'QPP457', 'QPP459', 'QPP463', 'QPP464', 'QPP465', 'QPP468', 'QPP469', 'QPP470', 'QPP471', 'QPP478', 'QPP48', 'QPP5', 'QPP50', 'QPP52', 'QPP6', 'QPP65', 'QPP66', 'QPP69', 'QPP7', 'QPP70', 'QPP76', 'QPP8', 'QPP91', 'QPP93']
codes = ['ICD-9, ICD-10, SNOMED-CT', 'CPT-4, SNOMED-CT', 'Other', 'ICD-9, ICD-10, SNOMED-CT', 'HCPCS, LOINC, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT, HCPCS, LOINC', 'ICD-9, ICD-10, SNOMED-CT', 'Other', 'Other', 'ICD-10, SNOMED-CT', 'Other, CPT-4, ICD-9, LOINC, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, LOINC, ICD-10, SNOMED-CT', 'ICD-9, LOINC, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, LOINC, ICD-10, SNOMED-CT', 'CPT-4, ICD-9, LOINC, ICD-10, SNOMED-CT', 'ICD-10, SNOMED-CT', 'CPT-4, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'Other, LOINC, ICD-10, SNOMED-CT', 'ICD-10, SNOMED-CT', 'CPT-4, ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'Other', 'ICD-9, LOINC, ICD-10, SNOMED-CT', 'SNOMED-CT', 'CPT-4, HCPCS, SNOMED-CT', 'HCPCS, ICD-9, Other, ICD-10, RXNORM, SNOMED-CT', 'CPT-4, SNOMED-CT', 'Other', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4, SNOMED-CT', 'Other', 'ICD-9, ICD-10, SNOMED-CT', 'HCPCS, LOINC, ICD-10, SNOMED-CT', 'HCPCS, ICD-9, LOINC, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4, SNOMED-CT', 'Other', 'ICD-9, ICD-10, SNOMED-CT', 'HCPCS, LOINC, ICD-10, SNOMED-CT', 'HCPCS, ICD-9, LOINC, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'Other, CPT-4, HCPCS, ICD-9, LOINC, ICD-10, SNOMED-CT', 'Other, CPT-4, HCPCS, ICD-9, LOINC, ICD-10, SNOMED-CT', 'CPT-4, SNOMED-CT', 'Other', 'ICD-10', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4, HCPCS, LOINC, ICD-10', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4, ICD-10, SNOMED-CT', 'CPT-4, ICD-10, SNOMED-CT', 'ICD-9, ICD-10', 'CPT-4, ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10', 'CPT-4, ICD-9, ICD-10, SNOMED-CT', 'CPT-4, ICD-9, LOINC, ICD-10, SNOMED-CT', 'CPT-4, HCPCS', 'CPT-4, ICD-9, ICD-10', 'CPT-4', 'CPT-4, ICD-9, LOINC, ICD-10, SNOMED-CT', 'CPT-4, ICD-9, LOINC, ICD-10, SNOMED-CT', 'CPT-4', 'CPT-4', 'CPT-4', 'GPI, NDC, UMLS, CPT-4, HCPCS, ICD-9, ICD-10, RXNORM, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4', 'CPT-4, HCPCS, ICD-9, ICD-10', 'ICD-9, ICD-10', 'HCPCS, ICD-9, LOINC, ICD-10, SNOMED-CT', 'CPT-4, SNOMED-CT', 'CPT-4', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4', 'ICD-10', 'ICD-10', 'CPT-4, HCPCS', 'CPT-4, ICD-9, ICD-10', 'CPT-4', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4, ICD-10, SNOMED-CT', 'CPT-4, ICD-10', 'CPT-4, ICD-10', 'ICD-9, ICD-10', 'Other, ICD-10', 'CPT-4', 'CPT-4, ICD-10', 'CPT-4', 'ICD-9, ICD-10', 'Other, ICD-9, ICD-10, CPT-4, HCPCS', 'CPT-4', 'ICD-9, Other, ICD-10, SNOMED-CT', 'CPT-4, HCPCS, ICD-9, ICD-10', 'ICD-9, ICD-10', 'CPT-4, HCPCS, ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10, SNOMED-CT', 'CPT-4', 'CPT-4', 'CPT-4, HCPCS, ICD-10', 'CPT-4', 'CPT-4', 'CPT-4', 'ICD-10', 'ICD-10', 'HCPCS, ICD-10, RXNORM', 'ICD-10', 'Other, ICD-9, ICD-10, SNOMED-CT', 'CPT-4', 'HCPCS, ICD-9, ICD-10, RXNORM', 'ICD-9, ICD-10, SNOMED-CT', 'ICD-10', 'SNOMED-CT', 'CPT-4, ICD-10', 'CPT-4', 'CPT-4', 'CPT-4', 'CPT-4', 'CPT-4', 'CPT-4', 'CPT-4', 'CPT-4, HCPCS', 'CPT-4, HCPCS', 'HCPCS, LOINC, ICD-10, SNOMED-CT', 'HCPCS, SNOMED-CT', 'NDC, HCPCS, ICD-10, RXNORM', 'CPT-4', 'CPT-4', 'ICD-9, ICD-10, SNOMED-CT', 'HCPCS', 'CPT-4', 'Other, ICD-9, ICD-10', 'ICD-9, ICD-10', 'ICD-10, SNOMED-CT', 'Other, CPT-4, ICD-9, ICD-10', 'CPT-4, ICD-10', 'CPT-4, ICD-9, ICD-10', 'ICD-9, ICD-10', 'CPT-4, ICD-9, ICD-10', 'ICD-9, ICD-10', 'CPT-4, HCPCS, ICD-9, ICD-10, SNOMED-CT', 'ICD-9, ICD-10', 'CPT-4, HCPCS, SNOMED-CT', 'CPT-4, HCPCS', 'CPT-4, HCPCS', 'HCPCS, RXNORM', 'CPT-4, ICD-9, ICD-10, SNOMED-CT', 'NDC, HCPCS, ICD-9, ICD-10, RXNORM', 'HCPCS, RXNORM', 'CPT-4, ICD-10, SNOMED-CT', 'HCPCS', 'CPT-4, HCPCS, LOINC, ICD-10', 'CPT-4, HCPCS, LOINC, ICD-10', 'Other, CPT-4, ICD-10', 'HCPCS, ICD-9, ICD-10, SNOMED-CT', 'CPT-4, ICD-9, ICD-10', 'CPT-4, HCPCS', 'Other, CPT-4, ICD-10', 'CPT-4, LOINC', 'Other, CPT-4', 'Other, RXNORM, CPT-4, ICD-9, ICD-10, SNOMED-CT', 'Other, CPT-4', 'Other, CPT-4', 'Other, CPT-4', 'ICD-10, SNOMED-CT', 'CPT-4, HCPCS', 'CPT-4', 'HCPCS, ICD-9, LOINC, ICD-10, SNOMED-CT', 'CPT-4, HCPCS', 'CPT-4, ICD-9, ICD-10', 'CPT-4, HCPCS, ICD-10', 'Other', 'ICD-10, SNOMED-CT', 'CPT-4', 'Other', 'Other, HCPCS, ICD-9, ICD-10, RXNORM, SNOMED-CT', 'HCPCS, ICD-9, ICD-10, RXNORM', 'ICD-10, HCPCS, ICD-9', 'HCPCS, ICD-10', 'ICD-10, HCPCS, SNOMED-CT', 'HCPCS, ICD-10, SNOMED-CT', 'CPT-4', 'CPT-4, HCPCS, SNOMED-CT', 'ICD-9, ICD-10', 'Other, CPT-4, ICD-10', 'NDC, HCPCS, ICD-10, RXNORM', 'CPT-4', 'CPT-4', 'CPT-4', 'HCPCS, ICD-10', 'Other', 'ICD-9, LOINC, ICD-10, SNOMED-CT, CPT-4', 'Other, CPT-4, ICD-9, ICD-10, SNOMED-CT', 'HCPCS, ICD-9, ICD-10', 'ICD-10', 'ICD-10, SNOMED-CT', 'HCPCS, ICD-10, SNOMED-CT', 'ICD-9, ICD-10', 'ICD-9, ICD-10, SNOMED-CT, CPT-4, HCPCS, LOINC', 'ICD-9, ICD-10', 'CPT-4', 'ICD-9, LOINC, ICD-10, SNOMED-CT, HCPCS', 'ICD-9, ICD-10', 'ICD-10']

df = pd.DataFrame(list(zip(measures, codes)), 
               columns =['Measure_No', 'codesystem'])

我想根据codesystem列中的值添加另一列category

    codesystem                   category
1   CPT-4,HCPCS                  Procedure specific
2   ICD-9,ICD-10,SNOMED-CT       Problem specific
3   LOINC                        Result specific
4   Other,UMLS                   Other
5   RXNORM,NDC,GPI               Medications



    1,2 Procedure specific & Problem specific
    1,3 Procedure specific & Result specific
    1,4 Other
    1,5 Procedure & medication specific
    2,3 Problem & Result Specific
    2,4 Other
    2,5 Problem & Medication Specific
    3,4 Other
    3,5 Result & medication specific
    4,5 other

我如何使用apply或任何其他方法执行此操作


Tags: resultotherproblemctproceduremeasuresspecificndc
1条回答
网友
1楼 · 发布于 2024-05-21 05:30:46

这是你要找的东西吗

def codes2categories(x):
    mappings = {
        ('CPT-4', 'HCPCS'): 'Procedure specific',
        ('ICD-9', 'ICD-10', 'SNOMED-CT'): 'Problem specific',
        ('LOINC'): 'Result specific',
        ('Other', 'UMLS'): 'Other',
        ('RXNORM', 'NDC', 'GPI'): 'Medications'
    }
    codes = x.split(', ')
    res = []

    for c in codes:
        for k in mappings:
            if c in k:
                res.append(mappings[k])
    return 'Other' if 'Other' in res else ' & '.join(set(res)) # using set() for removing duplicates


df['category'] = df.codesystem.apply(codes2categories)

我希望这有帮助

相关问题 更多 >