如何将数据帧列表转换为包含数据帧的元组

问题描述 投票:0回答:1

我有一个数据帧列表(df_names)。我想将其转换为 df_list。这是因为我想创建一个 for 循环(如底部所示),它向每个数据框添加一列,并将相应的值/名称放置在该列的 df_names 中。

我尝试删除 df_names 中的引号以创建 df_list,但是 for 循环仍然将其视为列表/str,而不是包含数据帧的元组。

总而言之,我只想将列表 df_names 转换为元组以运行下面的 for 循环。

...

df_names = ['df1', 'df2', 'df3']

df_list = [df1, df2, df3]


for i, k in zip(df_list, df_names):
    i['new_column'] = k

...

python pandas list for-loop tuples
1个回答
0
投票

这可行,但我不推荐它。您实际上应该将数据帧存储在

dict
中。

df_names = ['df1', 'df2', 'df3']

# Assuming df1, df2, and df3 are defined previously
df_list = [globals()[name] for name in df_names]

for i, k in zip(df_list, df_names):
    i['new_column'] = k

globals()
返回实现当前模块命名空间的字典。对于函数内的代码,这是在定义函数时设置的,并且无论在何处调用该函数都保持不变。

locals()

返回表示当前本地符号表的字典。自由变量在功能块中调用时由 locals() 返回,但在类块中则不返回。请注意,在模块级别,
locals()
globals() 
是相同的字典。

    

© www.soinside.com 2019 - 2024. All rights reserved.