Merge File CSV di Pandas

By | August 27, 2022
Print Friendly, PDF & Email
460 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.

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  Scikit-Learn Cheat Sheet untuk Data Science

Leave a Reply

Your email address will not be published.




Enter Captcha Here :