Как да комбинирам множество CSV файлове с 8 реда код

Защо ти трябва това?

Ръчно поставяне на копия е добре, ако нямате твърде много файлове, с които да работите.

Но представете си, ако имате над 100 файла за обединяване - желаете ли да го направите ръчно? Правенето на това многократно е досадно и склонно към грешки.

Ако всички файлове имат еднаква структура на таблицата (еднакви заглавки и брой колони), нека този малък скрипт на Python свърши работата.

Стъпка 1: Импортирайте пакети и задайте работната директория

Променете “/ mydir” в желаната работна директория.

import os import glob import pandas as pd os.chdir("/mydir")

Стъпка 2: Използвайте glob, за да съответства на модела 'csv'

Съпоставете шаблона ('csv') и запазете списъка с имената на файловете в променливата 'all_filenames'. Можете да разгледате тази връзка, за да научите повече за съвпадението на регулярния израз.

extension = 'csv' all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

Стъпка 3: Комбинирайте всички файлове в списъка и експортирайте като CSV

Използвайте панди за обединяване на всички файлове в списъка и експортиране като CSV. Изходният файл се нарича „kombiniran_csv.csv“, намиращ се във вашата работна директория.

#combine all files in the list combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ]) #export to csv combined_csv.to_csv( "combined_csv.csv", index=False, encoding="utf-8-sig")

encoding = 'utf-8-sig' е добавен за преодоляване на проблема при експортиране на 'неанглийски' езици.

И ... готово!

Тази статия е вдъхновена от моя действителен ежедневен проблем, а структурата на кодиране е от дискусия за stackoverflow. Попълненият скрипт за това ръководство е документиран в GitHub.

Благодаря ви, че четете. Моля, опитайте, забавлявайте се и ми кажете вашите отзиви!

Ако харесвате това, което направих, помислете дали да не ме следвате в GitHub, Medium и Twitter. Не забравяйте да го означите със звезда на GitHub: P