Cara menggabungkan beberapa file CSV dengan 8 baris kode

Mengapa Anda membutuhkan ini?

Copy-paste secara manual tidak masalah jika Anda tidak memiliki terlalu banyak file untuk dikerjakan.

Tetapi bayangkan jika Anda memiliki 100+ file untuk digabungkan - apakah Anda bersedia melakukannya secara manual? Melakukan ini secara berulang-ulang membosankan dan rawan kesalahan.

Jika semua file memiliki struktur tabel yang sama (header & jumlah kolom yang sama), biarkan skrip Python kecil ini yang bekerja.

Langkah 1: Impor paket dan setel direktori kerja

Ubah "/ mydir" ke direktori kerja yang Anda inginkan.

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

Langkah 2: Gunakan glob untuk mencocokkan pola 'csv'

Cocokkan pola ('csv') dan simpan daftar nama file di variabel 'all_filenames'. Anda dapat melihat tautan ini untuk mempelajari lebih lanjut tentang pencocokan ekspresi reguler.

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

Langkah 3: Gabungkan semua file dalam daftar dan ekspor sebagai CSV

Gunakan panda untuk menggabungkan semua file dalam daftar dan mengekspornya sebagai CSV. File keluaran bernama "gabungan_csv.csv" terletak di direktori kerja Anda.

#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' ditambahkan untuk mengatasi masalah saat mengekspor bahasa 'Non-Inggris'.

Dan… selesai!

Artikel ini terinspirasi oleh masalah sehari-hari saya yang sebenarnya, dan struktur pengkodeannya berasal dari diskusi tentang stackoverflow. Skrip lengkap untuk petunjuk ini didokumentasikan di GitHub.

Terima kasih telah membaca. Silakan mencobanya, bersenang-senang, dan beri tahu saya tanggapan Anda!

Jika Anda menyukai apa yang saya lakukan, pertimbangkan untuk mengikuti saya di GitHub, Medium, dan Twitter. Pastikan untuk membintangi di GitHub: P