Merge File CSV di Pandas: Panduan Lengkap dan Praktis

By | December 4, 2023
1,395 Views

 

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.

Pandas adalah salah satu pustaka Python yang paling populer dalam analisis data dan manipulasi dataset. Salah satu tugas umum dalam pengolahan data adalah menggabungkan atau menggabungkan beberapa file CSV menjadi satu dataset yang lengkap. Dalam artikel ini, kita akan menjelajahi langkah-langkah untuk melakukan merge file CSV di Pandas secara efisien.

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.

See also  JupyterLab 3.0 Dirilis: Yuk lihat Semua Fitur & Pembaruan Utama