我有12个包含环境数据的数据框 - 每个数据框中包含不同月份的数据,包含9934行和38列。
为了使我的代码尽可能简化,我想创建一个for循环,它循环遍历内存中的所有数据帧,并在它们上执行任务,例如设置每个数据帧的索引。
我尝试通过以下方式创建内存中所有数据帧的列表:
alldfs = [var for var in dir() if isinstance(eval(var), pd.core.frame.DataFrame)]
然而,当我尝试:
for df in alldfs:
df.set_index(['LABEL'], inplace = True)
我收到错误消息:
AttributeError: 'str' object has no attribute 'set_index'
有谁知道如何在内存中循环这12个数据帧中的每一个,编辑它们(例如设置索引)然后保存并移动到下一个?
答案 0 :(得分:0)
我确信最佳做法是将数据框存储在某种数据结构中(例如字典),但如果您真的想要遵循当前的方法,则需要使用eval
列表中的元素,因为它们是数据框变量的名称。
类似的东西:
for df_name in alldfs:
eval(df_name).set_index(['LABEL'], inplace = True)