python - 在for循环中使用python字典读取具有不同名称的多个CSV文件
问题描述
我有一个存储在 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 数据框的前五行,就好像我已经阅读了以下数据框一样。
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()
推荐阅读
- powerbi - Power BI - 最大日期或所选日期的最近日期
- html - 从 Word 文档编码 PDF 友好的 HTML 页面
- angular - 可以从 Windows 和 Web 客户端访问作为 Windows 服务托管的 WCF 服务吗?
- http - 在golang http包中拆分http请求头有意义吗?
- ruby-on-rails - 没有路线匹配 {:action=>"show", :controller=>"carts", :id=>nil},缺少必需的键:[:id]
- python - 如何修复错误消息:“chromedriver.exe”可执行文件可能具有错误的权限
- python - 为什么在使用 urlopen() 时出现回溯错误?
- ant - 无法在 wso2 esb home/bin 目录中构建 build.xml 文件
- c - 函数中的 scanf 似乎将垃圾值写入一个数组而不是另一个数组,尽管两者是相同的
- python - Spark 独立无法加载文件