我的数据来自具有预编码分类变量的数据源。不幸的是,这些不是我分析所需的变量,需要将它们汇总到第二列:
age_group lifestage
18-24 young adult
25-34 adult
35-44 adult
45-54 adult
. .
. .
. .
我目前正在使用循环列表来执行此操作:
ya_list = ['18-24']
adult_list = ['25-34', '35-44', '45-54']
for age in age_group:
if age in ya_list:
lifestage = 'young adult'
elif age in adult_list:
lifestage = 'adult'
这适用于此示例,只有几个组可以重新编码,但是当我有10个或更多组的组进行重新编码时,它会变得更加笨拙。我不禁想到必须有更好的方法来做到这一点,但我找不到一个。
答案 0 :(得分:0)
你想要一本字典:
stages = {'18-24': 'young adult',
'25-34': 'adult', ...}
for age in age_group:
lifestage = stages[age]
这是Python中许多elif
的规范替代品。
答案 1 :(得分:0)
您可以使用split()
和列表理解来获取要使用的实际数字:
for age in age_group:
lower,higher = [int(i) for i in age.split("-")]
if higher <= 24:
lifestage = "young adult"
elif lower <= 54:
lifestage = "adult"
# etc...
不确定您要扩展的是年龄范围的数量或阶段的数量,但希望这将有助于您开始。