在for循环中使用熊猫csv_read读取csv文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在for循环中使用熊猫csv_read读取csv文件相关的知识,希望对你有一定的参考价值。

我正在将Macbook与MAC OS X catalina和最新的anaconda安装一起使用。

我在很多文件所在的文件夹中有要读取的文件列表。文件列表包含在excel表格中,格式如下。

list.xlsx

此文件称为list.xlsx

csv文件的目录和子目录位于文件夹中,如下"/Users/XXX/Documents/test/data"

目录中还有许多我不想使用的文件,因此我想循环浏览此list.xlsx我拥有的文件。

[当我执行df = pd.csv_read("/Users/XXX/Documents/test/data/A/ABCS.csv")时,文件读取完全正常。这是我列表中的第一个文件。

但是,当我以这种方式加载文件时,可以执行for循环,

filelist = pd.read_excel("/Users/XXX/Documents/test/list.xlsx")

df = pd.csv_read(f"/Users/XXX/Documents/test/data/{filelist.File[0]}")

我得到了'FileNotFoundError: [Error 2] File /Users/XXX/Documents/test/data/A/ABCS.csv does not exist:/Users/XXX/Documents/test/data/A/ABCS.csv'

即使它显示了我上面使用的确切位置。为什么会发生这种情况,我该如何解决?似乎当我使用pandas加载文件名时,无法正确读取。

答案

这可以解决:

filelist = pd.read_excel("/Users/XXX/Documents/test/list.xlsx")
DF = []
for i in range(len(filelist)):
    file = str(filelist[i])
    df = pd.read_csv(file, index_col=None, header=0)
    DF.append(df)

#combine all files
DF = pd.concat(DF, axis=0, ignore_index=True)
另一答案

[Serge Ballesta说我不应该盲目相信打印的字符串,我按照他的建议在文件列表.File [0]中运行了print([(i,hex(ord(i))))for i),文件名后的一串空格弄乱了读取功能。

以上是关于在for循环中使用熊猫csv_read读取csv文件的主要内容,如果未能解决你的问题,请参考以下文章

csv.Error:可迭代,希望尝试从For中保存CSV文件

使用熊猫循环合并大量csv文件[重复]

对于带有 csv 列的循环(熊猫)

熊猫在列中使用额外的逗号读取 csv

如何从存储在.csv中的熊猫数据框中读取np矩阵?

如何使用代理上的熊猫从 url 读取_csv 文件?