在Python中合并分类值到第二个变量

0 投票
2 回答
1059 浏览
提问于 2025-04-18 10:26

我有一些数据,这些数据来自一个已经编码好的分类变量的数据源。不过,这些变量并不是我分析所需要的,我需要把它们合并到第二列中:

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的标准方法。

撰写回答