【发布时间】:2020-02-22 02:25:18
【问题描述】:
我正在处理一个数据集,并且我有一些分类在 ICD10 中的诊断。但是,由于我有很多不同的代码,我想将它们分类为更大的类别。所以我在互联网上找到了这些类别。问题是代码就像“A04”或“Z01”,我不能订购它们,因为它们是字母和数字的混合体。我在下面尝试了该代码,但我确实知道变量“diag_icd10_ranges”不正确。有人可以帮帮我吗?
df['code_diag_assoc_icd10'] = df['Assoc_Diagnose']
# Associated category names
diag_icd10_ranges = [(A00, B99), (C00, D49), (D50, D89), (E00, E89), (F01, F99), (G00, G99),
(H00, H59), (H60, H95), (I00, I99), (J00, J99), (K00, K95), (L00, L99),
(M00, M99), (N00, N99), (O00, O9A), (P00, P96), (Q00, Q99), (R00, R99),
(S00, T88), (V00, Y99), (Z00, Z99)]
diag_icd10_dict = {0: 'infectious_icd10d', 1: 'neoplasms_icd10d', 2: 'blood_icd10d', 3: 'endocrine_icd10d',
4: 'mental_icd10d', 5: 'nervous_icd10d', 6: 'eye_icd10d', 7: 'ear_icd10d',
8: 'circulatory_icd10d', 9: 'respiratory_icd10d', 10: 'digestive_icd10d', 11: 'skin_icd10d',
12: 'musculo_icd10d', 13: 'genitourinary_icd10d', 14: 'pregnancy_icd10d', 15: 'perinatalperiod_icd10d',
16: 'congenital_icd10d',
17: 'abnormalfindings_icd10d', 18:'injury_icd10d', 19:'morbidity', 20:'healthstatus'}
# Re-code in terms of integer
for num, cat_range in enumerate(diag_icd10_ranges):
df['code_diag_assoc_icd10'] = np.where(df['code_diag_assoc_icd10'].between(cat_range[0],cat_range[1]),
num, df['code_diag_assoc_icd10'])
# Convert integer to category name using diag_dict
df['cat_diag_assoc_icd10'] = df['code_diag_assoc_icd10'].replace(proc_icd10_dict)
【问题讨论】:
-
你能举一个你想要的顺序的例子吗?
标签: python dictionary for-loop