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



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

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

总结一下,我只想将列表df_names转换为元组,以便为运行

下面的循环。…

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()在函数块中调用时返回自由变量,而不是在类块中调用。请注意,在模块级别,locals()globals()是同一个字典。

相关内容