【发布时间】:2019-10-02 23:15:16
【问题描述】:
我有一个存储在 python 字典中的文件名和文件路径列表。我正在尝试使用 pandas 的 read_csv 读取文件并从字典中分配数据框名称。我可以在运行 for 循环时读取和打印数据帧,但在循环完成后我无法调用数据帧。我可以将所有数据帧附加到一个列表中,但这样我就无法为这些数据帧分配不同的名称,这些名称也存储在字典中。
我查看了各种论坛,但没有一个能解释为什么带有 pd.read_csv 的 for 循环不起作用,以及为什么我无法将名称分配给 for 循环中的数据帧以供以后使用。
import pandas as pd
files_dict = {"Filter":"OUTTYPENM.csv","previous":"previous.csv"}
for key, value in files_dict.items():
key = pd.read_csv(value)
Filter.head()
我希望看到过滤器数据帧的前五行,就好像我已经阅读了以下数据帧一样。
Filter = pd.read_csv("OUTTYPENM.csv")
所有 csv 文件都在当前工作目录中。
当我运行 for 循环代码并运行 Filter.head() 时,我收到一条错误消息 - NameError: name 'Filter' is not defined
【问题讨论】:
-
当你
print(key)时会发生什么? -
你从未定义过
Filter -
只需使用数据框的字典,而不是单独的命名对象。
-
当我在 for 循环中 print(key) 时,它会在循环迭代时一一打印所有数据帧。如果我在 for 循环之外打印它,它会打印 for 循环中的最后一个数据帧。我正在使用 Anaconda 的 spyder 来执行此操作。