【问题标题】:How to read multiple csv files into pandas and output in one csv file如何将多个csv文件读入pandas并在一个csv文件中输出
【发布时间】:2017-04-24 20:47:43
【问题描述】:

我想导入路径结构化的 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'

谢谢!

【问题讨论】:

    标签: python csv pandas data-cleaning


    【解决方案1】:

    我觉得你可以用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)
            ...
            ...   
    

    【讨论】:

    • for file in glob.glob('Files/*.csv'):instead ;)
    • 对于 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:])]) TypeError: sequence item 2: expected string, float found
    • 这可能是一些数据转换为数字的问题,请尝试添加参数dtype - pd.read_csv(file, sep='\s', header=None, chunksize=6, dtype=str)
    • 输出:ValueError:回退到 'python' 引擎,因为 'c' 引擎不支持正则表达式分隔符(分隔符 > 1 char 并且不同于 '\s+' 被解释为正则表达式),但是这会导致“dt​​ype”被忽略,因为“python”引擎不支持它。 (注意“转换器”选项提供了类似的功能。)
    • 这只是警告,没问题。添加engine='python'
    猜你喜欢
    • 2014-05-17
    • 2020-02-05
    • 2019-10-11
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    相关资源
    最近更新 更多