У меня есть несколько папок, каждый из которых содержит csvs. Я пытаюсь согласовать csvs в каждом подкаталоге, а затем экспортировать его. В конце я бы имел такое же количество выходов, как и папки. В конце концов, я хотел бы иметь Folder1.csv, Folder2.csv, ... Folder99.csv и т.д. Это то, чтоLooping CSV Concat в Python Pandas
import os
from glob import glob
import pandas as pd
import numpy as np
rootDir = 'D:/Data'
OutDirectory = 'D:/OutPut'
os.chdir(rootDir)
# The directory has folders as follows
# D:/Data/Folder1
# D:/Data/Folder2
# D:/Data/Folder3
# ....
# .....
# D:/Data/Folder99
# Each folders (Folder1, Folder2,..etc.) has many csvs.
frame = pd.DataFrame()
list_ = []
for (dirname, dirs, files) in os.walk(rootDir):
for filename in files:
if filename.endswith('.csv'):
df = pd.read_csv(filename,index_col=None, na_values=['-999'], delim_whitespace= True, header = 0, skiprows = 2)
OutFile = '%s.csv' % OutputFname
list_.append(df)
frame = pd.concat(list_)
df.to_csv(OutDirectory+OutFile, sep = ',', header= True)
Я получаю следующее сообщение об ошибке:
IOError: File file200150101.csv does not exist
Когда я вручную выполнение кода для папки в то время, он завершает в течение довольно короткого времени, теперь это занимает совсем немного времени с петлей. Он также добавляет вывод строки за строкой в каждом csv. Я не делал вычислений в приведенном выше коде, но есть какая-то передискретизация. –
Вы пытались перечислить файлы, обработанные циклом, с помощью 'print (os.path.join (dirname, filename))', чтобы проверить, действительно ли цикл достигает их? если это так, это может быть проблемой с пандой. – wullxz
Да, это плюющие выходы, но его едва ползти, у меня было только три выхода, сгенерированные после нескольких часов. –