[英]Create a Class that creates a dictionary from reading in Multiple CSV Files - Python
[英]Reading multiple CSV files with different names using python dictionary in a for loop
我有一个存储在 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
这并不能完全回答您的问题,但我认为它可以让您到达类似的地方,而不涉及任何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()
尝试这个:
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/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.