我有一个存储在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”
答案 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/