2016-06-14 3 views
0

Я пытаюсь объединить несколько CSV-файлов в один. CSV-файл, используя dataframe в pandas. сложная часть об этом заключается в том, что мне нужно захватить несколько файлов за несколько дней. Пожалуйста, дайте мне знать, если это не имеет смысла. Поскольку он в настоящее время стоит, я не могу понять, как пройти через каталог. Не могли бы вы оказать некоторую помощь?Объединить несколько файлов .csv с python из разных путей каталога

import csv 
import pandas as pd 
import datetime as dt 
import glob, os 


startDate = 20160613 
endDate = 20160614 

dateRange = endDate - startDate 
dateRange = dateRange + 1 
todaysDateFilePath = startDate 


for x in xrange(dateRange): 
    print startDate 
    startDate = startDate + 1 
    filePath = os.path.join(r"\\export\path", startDate, "preprocessed") 
    os.chdir(filePath) 
    interesting_files = glob.glob("trade" + "*.csv") 

print interesting_files 

df_list = [] 
for filename in sorted(interesting_files): 
    df_list.append(pd.read_csv(filename)) 
    full_df = pd.concat(df_list) 




saveFilepath = r"U:\Chris\Test_Daily_Fails" 
fileList = [] 


full_df.to_csv(saveFilepath + '\\Files_For_IN' + "_0613_" + ".csv", index = False) 

ответ

0

IIUC вы можете создать listall_files и в цикле добавить выход из glob в all_files:

all_files = [] 
for x in xrange(dateRange): 
    print startDate 
    startDate = startDate + 1 
    filePath = os.path.join(r"\\export\path", startDate, "preprocessed") 
    os.chdir(filePath) 
    all_files = all_files + glob.glob("trade" + "*.csv") 

print interesting_files 

Кроме того, необходимо первый добавить все значения в df_list и только один раз concat (I отступом код для concat):

df_list = [] 
for filename in sorted(interesting_files): 
    df_list.append(pd.read_csv(filename)) 

full_df = pd.concat(df_list) 
+0

Извините, без структуры вашего файла очень сложно ответить. Может быть, помогите, если ваша 'файловая структура' с образцами данных' zip' и share. – jezrael

Смежные вопросы