Python 通过子集另一个循环并添加后缀,在循环中创建多个新数据帧

Python 通过子集另一个循环并添加后缀,在循环中创建多个新数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有一堆数据帧,我想通过子集一个固定的列列表并添加一个后缀来创建新的数据帧。到目前为止,我列出了我所有的数据帧: buckets_list = ['one_season_bucket_year1', 'two_season_bucket_year1', 'two_season_bucket_year2', 'three_season_bucket_year1', 'three_season_bucket_year2', 'three_season_bucket_year3', 'four_sea

我有一堆数据帧,我想通过子集一个固定的列列表并添加一个后缀来创建新的数据帧。到目前为止,我列出了我所有的数据帧:

buckets_list = ['one_season_bucket_year1',
'two_season_bucket_year1',
'two_season_bucket_year2',
'three_season_bucket_year1',
'three_season_bucket_year2',
'three_season_bucket_year3',
'four_season_bucket_year1',
'four_season_bucket_year2',
'four_season_bucket_year3',
'five_season_bucket_year1',
'five_season_bucket_year2',
'five_season_bucket_year3',
'five_season_bucket_year4',
'five_season_bucket_year5']
我有一个要子集的所有列的列表:

player_bio_list = ['games',
'height',
'position',
'minutes']
我尝试创建一个for循环来创建一个新的数据帧:

for bucket in buckets_list:
    vars()[str(bucket) + "player_bio"]= pd.DataFrame(bucket[player_bio_list])

但我得到一个错误,说“TypeError:字符串索引必须是整数”,我在这里遗漏了什么?我在谷歌上搜索了这个错误,但几乎没有成功,因为它发生的原因很多

你的
bucket\u列表
只是一个字符串列表,而不是数据帧列表。如果您真的想保留变量的名称并添加前缀,请使用
bucket\u list
作为以下格式的字典:
{dataframe\u variable\u name:dataframe\u object
,并通过使用
for key,val in bucket\u list.items()对其进行迭代:
,其中
键将是变量名,
val
将是数据帧对象

编辑:用于澄清和回答OP的评论

buckets_list = {dataframe1_name: dataframe1,
                dataframe2_name: dataframe2,
                ...}

只要把你想要的所有数据框都填满就行了…

非常感谢,你介意展示一下如何制作上述字典吗?bucket\u list={dataframe1\u name:dataframe1,dataframe2\u name:dataframe2,…}