1
我有多个文件夹,每个文件夹都包含csvs。我试图在每个子目录中连接csvs,然后导出它。最后,我将拥有与文件夹相同数量的输出。最后我想有Folder1.csv,Folder2.csv,... Folder99.csv等等,这是什么在Python中循环CSV Concat熊猫
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
是的,它是随地吐痰的输出,但它几乎没有爬行,我只有三个输出在多个小时后产生 –