在for循环中使用python词典读取具有不同名称的多个CSV文件

时间:2019-05-15 18:29:57

标签: python pandas dataframe

我有一个存储在python字典中的文件名和文件路径的列表。我正在尝试使用pandas的read_csv读取文件,并从字典中分配数据框名称。我可以在运行for循环时读取和打印数据帧,但是在循环结束后无法调用数据帧。我可以将所有数据框追加到列表中,但是那样我无法为这些数据框分配不同的名称,这些名称也存储在字典中。

我检查了各种论坛,但是没有一个论坛解释为什么ppd.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:未定义名称“ Filter”

2 个答案:

答案 0 :(得分:1)

这不能完全回答您的问题,但是我认为它可以将您带到类似的地点,而不会涉及任何exec()locals()呼叫。

除了创建以字典键命名的变量外,您还可以拥有第二个字典,其中的键相同,而值现在是您读入的DF。

import pandas as pd
files_dict = {"Filter":"OUTTYPENM.csv","previous":"previous.csv"}
df_dict = {}
for key, value in files_dict.items():
    df_dict[key] = pd.read_csv(value)
df_dict['Filter'].head()

答案 1 :(得分:0)

尝试一下:

for key, value in files_dict.items():
    locals()[key] = pd.read_csv(value)

但是不建议使用此方法。在此处查看链接:https://www.linuxquestions.org/questions/programming-9/python-create-variables-from-dictionary-keys-859776/