首页 > 解决方案 > Python从存储在列表中的字符串设置数据框名称

问题描述

我是使用 Python 工作的新手,并且正在努力创建一个 for 循环,该循环根据存储在列表中的值生成几个子集数据帧。

我有两个列表:dataframe_names 和ages_list。我需要从数据框“数据”中创建单独的子集数据框,每个数据框都包含ages_list 中的一个值。我想用 dataframe_names 中保存的相应字符串命名这些数据帧中的每一个。

这是年龄列表:

ages_list = ['<30', '30-34', '35-39', '40-44', '45-49', '50-54', '55-59', '60-64', '65-69', '70-74', '75-79', '80-84', '85+']

这是数据框名称列表:

dataframe_names = ['age_30', 'age30_34', 'age35_39', 'age40_44', 'age45_49', 'age50_54', 'age55_59', 'age60_64', 'age65_69', 'age70_74', 'age75_79', 'age80_84', 'age85_']

这是我尝试过的代码,根本不起作用

for (age,name) in zip(ages_list, dataframe_names):
    name = data[data['AgeGroup']== age]

我究竟做错了什么?

标签: python

解决方案


我找到了解决您的问题的方法,但是数据在列表中,只需将其更改为您使用的正确数据框即可。

这是我写的代码:

ages_list = ['<30', '30-34', '35-39', '40-44', '45-49', '50-54', '55-59', '60-64', 
'65-69', '70-74', '75-79', '80-84', '85+']

dataframe_names = ['age_30', 'age30_34', 'age35_39', 'age40_44', 'age45_49', 'age50_54', 'age55_59', 'age60_64', 'age65_69', 'age70_74', 'age75_79', 'age80_84', 'age85_']
data = ['<30', '40-44', '85+']
name = []
ind = None
for age in data:
    for agl in data:

        if age == agl:
            ind = ages_list.index(agl)
            name.append(dataframe_names[ind])
            break


print(name)

这就是印刷品:

['age_30', 'age40_44', 'age85_']

推荐阅读