如何在一个csv文件中将多个csv文件读入pandas并输出

时间:2016-12-09 11:22:23

标签: python csv pandas data-cleaning

我想导入路径结构化的csv文件并输出为一个CSV。我的代码只适用于路径和手动输入的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'

谢谢!

1 个答案:

答案 0 :(得分: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)
        ...
        ...