首页 > 解决方案 > python中的字典编码

问题描述

大家好,我是 python 和编码的新手。

我想对以下药物进行分组(ICD10 编码):

A00 - B99    1
C00 - D49    2
D50 - D89    3
E00 - E89    4

我创建了映射字典,如下所示:

dict_ICD_10 = {"A":1,"B":1,"C":2,"D":2,"E":3}

但无论如何这看起来不正确,因为 D50 - D89 属于第 3 类,但根据我的编码,它属于第 2 类。我从早上开始挠头,但无法弄清楚。有没有办法从不同的地方进行这种编码方法。

提前致谢

标签: pythonpandasdictionaryencodingicd

解决方案


假设这些总是 3 位数字,您可以利用字母数字排序,并编写如下内容:

classes = (
    ('A00', 'B99', 1),
    ('C00', 'D49', 2),
    ('D50', 'D89', 3),
    ('E00', 'E89', 4),
)

def get_class(code):
    for low, high, cls in classes:
        if low <= code <= high:
            return cls
    return None

请注意,None如果不匹配,这将返回,并且您可能还希望首先强制执行有效的 3 字符代码(例如get_class('A1')返回 1,但可能不应该)。此外,get_class('D90')返回None但可能不是立即显而易见的原因(尽管在该领域可能很明显)。根据应用程序,如果代码位于这些“漏洞”之一之间,您可能想要做一些不同的事情。


推荐阅读