在python中循环内存中的所有数据帧

时间:2017-10-04 11:22:26

标签: python pandas for-loop

我有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个数据帧中的每一个,编辑它们(例如设置索引)然后保存并移动到下一个?

1 个答案:

答案 0 :(得分:0)

我确信最佳做法是将数据框存储在某种数据结构中(例如字典),但如果您真的想要遵循当前的方法,则需要使用eval列表中的元素,因为它们是数据框变量的名称。

类似的东西:

for df_name in alldfs: 
    eval(df_name).set_index(['LABEL'], inplace = True)