2016-12-09 8 views
2

Я хочу импортировать в пути структурированные файлы csv и выводить как один CSV. Мой код работает только с контуром и вручную созданным csv-файлом.Как читать несколько файлов csv в pandas и выводить в один файл csv

import csv 
import pandas as pd 
import numpy as np 
import glob 

cols = ['Date', 'Time', 'Duration', 'IP', 'Request'] 
pd.DataFrame(columns=cols).to_csv('out9.csv', index=False, sep=';') 

for df in pd.read_csv('query.csv', sep='\s', header=None, chunksize=6): 
    df.reset_index(drop=True, inplace=True) 
    df.fillna('', inplace=True) 
    d = pd.DataFrame([df.loc[3,0], df.loc[3,1], ' '.join(df.loc[3,4:8]), ' '.join(df.loc[4,4:6]), ' '.join(df.loc[5,4:])]) 
    d.T.to_csv('out.csv', index=False, header=False, mode='a', sep=';') 

Я знаю, что есть некоторые темы, как читать много файлов CSV, но в моем случае не помогло, к сожалению.

Я хотел бы прочитать об этом:

: C\Desktop\Files\*.csv 

Информация о файлах CSV: Все они построены таким же, то есть ни один заголовок, одни и те же структуры. И я бы хотел, чтобы в начале моего кода все в папке, которую читали, и как отформатированный снова выдают.

Поэтому, если это возможно, чтобы изменить код как можно меньше, я читал только несколько CSV, вместо них в «query.csv»

Спасибо!

ответ

3

Я думаю, что вы можете использовать glob:

import glob 

cols = ['Date', 'Time', 'Duration', 'IP', 'Request'] 
pd.DataFrame(columns=cols).to_csv('out9.csv', index=False, sep=';') 

for file in glob.glob('C:/Desktop/Files/*.csv'): 
    for df in pd.read_csv(file, sep='\s', header=None, chunksize=6): 
     df.reset_index(drop=True, inplace=True) 
     ... 
     ... 
+0

'для файла в glob.glob:' вместо;) – MMF

+0

@MMF уверен, спасибо ('Files/* CSV.). – jezrael

+0

для файла в glob.glob ('C:/Users/xxx/Desktop/NZIP_Logfiles/*. Csv'): это мой путь, но я получаю ошибку: строка 14, в d = pd.DataFrame ([df .loc [3,0], df.loc [3,1], '' .join (df.loc [3,4: 8]), '' .join (df.loc [4,4: 6]) , '' .join (df.loc [5,4:])]) ТипError: элемент последовательности 2: ожидаемая строка, найденная float –

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

  • Нет связанных вопросов^_^