
Urusan Merge file memang sering kita jumpai, biasanya dikarena file tersebut time series karena mempunyai waktu yang berbeda-beda, misalkan saja pada file logger. Keuntungan file berbasis CSV yaitu readable alias dapat dibaca secara mudah menggunakan notepad sekalipun. Namun demikian dengan banyaknya file satu-persatu tentu akan sulit dianalisis.
Merge File CSV merupakan salah satu solusi yang bisa kita gunakan untuk menggabungkan semua file jadi 1 table utuh. Bila kalian menggunakan R/RStudio pernah saya bahas disini. Bagi pengguna python tidak usah kuatir, kita bisa melakukan Merge File CSV di Pandas secara lebih ringkas.
Function Concat
Beberapa bahasa pemrograman lebih sering menggunakan istilah Concat atau concatenation, Append dan atau merge. Didalam library Pandas sudah disediakan function untuk hal tersebut. Misalkan saja kita punya 2 tabel data frame yang mempunyai nama dan jumlah kolom yang sama, maka untuk merge file CSV di Pandas sangat mudah yaitu
import pandas as pd df = pd.concat( map(pd.read_csv, ['mydata.csv', 'mydata1.csv']), ignore_index=True) print(df)
Namun dalam prakteknya file CSV biasanya disimpan dalam bentuk file dalam sebuah folder. Saya akan ambil contoh untuk mengolah data saham di https://github.com/mulkan/data-stock/tree/main/dataset yang biasanya saya olah dengan mudah pakai R/RStudio, sekarang saya akan coba Merge File CSV di Pandas dengan kode berikut
import pandas as pd import glob import os import time joined_files = os.path.join("G:\\dataset", "*.csv") joined_list = glob.glob(joined_files) start_time = time.time() df = pd.concat(map(pd.read_csv, joined_list), ignore_index=True) end_time = time.time() print(f"Selesai {end_time-start_time:.2f} detik")
Ternyata butuh waktu 13.45 detik. Merge File CSV di Pandas cukup mudah dilakukan menggunakan function concat dan map.