在Python中合并分类值到第二个变量
我有一些数据,这些数据来自一个已经编码好的分类变量的数据源。不过,这些变量并不是我分析所需要的,我需要把它们合并到第二列中:
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个或更多的组需要重新编码,那就变得非常麻烦。我总觉得应该有更好的方法来处理这个问题,但我一直找不到。
2 个回答
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...
我不太确定你要扩展的是年龄范围的数量,还是阶段的数量,但希望这些能帮助你入门。
0
你想要一个字典:
stages = {'18-24': 'young adult',
'25-34': 'adult', ...}
for age in age_group:
lifestage = stages[age]
这是一种在Python中可以替代很多elif
的标准方法。