我有一个数据帧列表(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
...
这可行,但我不推荐它。您实际上应该将数据帧存储在
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()
和globals()
是相同的字典。