Объедините несколько файлов CSV, используя Python и Pandas - PullRequest
0 голосов
/ 27 июня 2018

У меня есть следующий код:

import glob
import pandas as pd
allFiles = glob.glob("C:\*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
    print file_
    df = pd.read_csv(file_,index_col=None, header=0)
    list_.append(df)
    frame = pd.concat(list_, sort=False)
print list_
frame.to_csv("C:\f.csv")

Это объединяет несколько CSV в один CSV.

Однако также добавляется столбец с номером строки.

Введите:

a.csv

a   b   c   d
1   2   3   4

b.csv

a   b   c   d
551 55  55  55
551 55  55  55

Результат: f.csv

    a   b   c   d
0   1   2   3   4
0   551 55  55  55
1   551 55  55  55

Как я могу изменить код, чтобы он не отображал номера строк в выходном файле?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

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

import glob
allFiles = glob.glob("C:\*.csv")
first = True
with open('C:\f.csv', 'w') as fw:
    for filename in allFiles:
        print filename
        with open(filename, 'r') as f:
            if not first:
                f.readline() # skip header
            first = False
            fw.writelines(f)
0 голосов
/ 27 июня 2018

Изменить frame.to_csv("C:\f.csv") на frame.to_csv("C:\f.csv", index=False)

См .: pandas.DataFrame.to_csv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...