Как объединить несколько CSV-файлов в один CSV-файл, удаляя заголовки каждый раз? - PullRequest
0 голосов
/ 18 января 2019

Я скачал около 100 CSV-файлов из Интернета, используя Python. Каждый файл рассчитан на месяц в году, поэтому я эффективно загружаю данные временных рядов.

Теперь я хочу поместить все эти CSV-файлы в один CSV-файл по времени, я не уверен, как это сделать после каждого другого?

Также я должен отметить, что, за исключением первого раза, я хочу удалять заголовки каждый раз, когда помещаю новый CSV-файл.

Это будет иметь смысл, почему, когда вы видите мои данные:

csv file one

Ценю любую помощь, спасибо

1 Ответ

0 голосов
/ 18 января 2019

Сортируйте файлы CSV по времени (предположительно это можно сделать с помощью буквенно-цифровой сортировки имен файлов), а затем просто объедините их все вместе. Вероятно, это проще сделать в bash, чем в python, но вот решение на python (не проверено):

from glob import glob
# Fetch a sorted list of all .csv files
files = sorted(glob('*.csv'))

# Open output file for writing
with open('cat.csv', 'w') as fi_out:
    # iterate over all csv files
    for i, fname_in in enumerate(files):
        # open each csv file
        with open(fname_in, 'r') as fi_in:
            # iterate through all files in the csv file
            for i_line, line in enumerate(fi_in):
                # Write all lines of the first file (i == 0)
                # For all other files write all lines except the first one (i_line > 0)
                if i_line > 0 or i == 0:
                    fi_out.write(line)
...