首页 > 解决方案 > Pandas:如何根据现有的字符串变量为新变量赋值?

问题描述

我正在研究一个由癌症疾病不同代码的变量组成的数据框。这些代码由 5 个数字或“DC”后跟 2-3 个数字(字符串变量)组成。我想创建一个新变量 (cancer_type),它从疾病代码变量 (cancer_code) 中获取值并将类别(例如值 1 到 12)分配给cancer_type。

它应该是这样的:

# pseudo-code
if df[cancer_code] == ("1400-1499" or "DC00-DC148") -> df[cancer_group] = 1
if df[cancer_code] == ("1500-1599" or "DC150-159") -> df[cancer_group] = 2

我发现了许多关于如何在整数/浮点变量上使用条件的示例,但在字符串的“范围”上却没有。有什么简单的方法可以做到这一点?我正在使用熊猫。

标签: pythonpandas

解决方案


您可以创建一个mapping dict然后使用它mapping_dict来映射值

map_dict ={"1400-1499": 1, "DC00-DC148" : 1 , "1500-1599": 2, "DC150-159" :2}
df['cancer_group'] = df.cancer_code.map(map_dict)

推荐阅读