Чтение CSV-файла при использовании pandas csv_read в цикле for - PullRequest
0 голосов
/ 07 апреля 2020

Я использую Macbook с MA C OS X catalina и последней установкой anaconda.

У меня есть список файлов, которые я хочу прочитать в папке со многими файлами. Список файлов содержится в листе Excel в следующем формате.

list.xlsx

Этот файл называется list.xlsx

Каталог и подкаталоги файлов CSV расположены в папке следующим образом "/Users/XXX/Documents/test/data"

В каталоге есть много других файлов, которые я не хочу использовать, поэтому я хочу просмотреть этот список.xlsx файлов, которые у меня есть.

Когда я делаю df = pd.csv_read("/Users/XXX/Documents/test/data/A/ABCS.csv"), файл читается отлично. Это первый файл в моем списке.

Однако, когда я загружаю файл таким образом, я могу выполнить для l oop,

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, он не может быть правильно прочитан.

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Серж Баллеста сказал, что я не должен слепо доверять напечатанной строке, я выполнил команду print ([(i, hex (ord (i)))) для i в filelist.File [0]]), как он предложил и нашел там были строки пробелов после имен файлов, которые портили функцию чтения.

0 голосов
/ 07 апреля 2020

Это будет обходной путь:

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)
...