Data yang tersedia untuk proses analisa data atau data mining biasanya perlu dilakukan pre-processing terlebih dahulu. Salah satu pre-processing yang dilakukan adalah menggabungkan beberapa Pandas DataFrame menjadi 1 buah DataFrame. Penggabungan ini bertujuan agar data yang diproses berada pada 1 DataFrame saja sehingga proses selanjutya dapat dilakukan fokus pada DataFrame tersebut. Pada artikel ini akan dibahasa mengenai cara Pandas Join 2 DataFrame untuk inner, left dan right join. Dokumentasi secara menyeluruh mengenai ini dapat dilihat di sini.
Import Library dan Membuat Beberapa Dataframe
Pada bagian ini akan diperlihatkan kode program untuk import library Pandas dan membuat beberapa DataFrame
import pandas as pd
# membuat data pelanggan
pelanggan = pd.DataFrame({'idpelanggan':[1, 2, 3, 4, 5],
'nama':['Adi','Zainal','Fajar','Budiman','Marlina']})
# membuat data transaksi
transaksi = pd.DataFrame({'idtransaksi': [5, 6, 7],
'idpelanggan' : [2, 3, 4],
'idbarang' : [8, 9, 10],
'jumlah' : [3, 4, 5] })
# membuat data barang
barang = pd.DataFrame({'idbrg' : [8, 9, 10, 11, 12],
'nama_barang' : ['Biskuit', 'Kopi', 'Gula', 'Beras', 'Minyak Goreng'],
'harga' : [2000, 3000, 3500, 5000, 6000]})
Hasil DataFrame dari keluaran kode program diatas terlihat seperti berikut ini.
Menggabungkan DataFrame dengan inner join
Pada bagian ini akan dicontohkan mengenai cara melakukan inner join pada 2 Pandas DataFrame. DataFrame yang akan digabungkan adalah DataFrame pelanggan dan transaksi.
# menggabungkan 2 dataframe yaitu pelanggan dan transaksi secara inner join
df1 = pd.merge(pelanggan,transaksi, on = 'idpelanggan', how='inner')
df1
Keluaran dari kode diatas adalah
Menggabungkan DataFrame dengan left join
Pada bagian ini akan dicontohkan mengenai cara melakukan leftjoin pada 2 Pandas DataFrame. DataFrame yang akan digabungkan adalah DataFrame pelanggan dan transaksi.
# menggabungkan 2 dataframe yaitu pelanggan dan transaksi secara left join
df2 = pd.merge(pelanggan,transaksi, on = 'idpelanggan', how='left')
df2
Keluaran dari kode diatas adalah
Right Join 2 DataFrame
Pada bagian ini akan dicontohkan mengenai cara melakukan right join pada 2 Pandas DataFrame. DataFrame yang akan digabungkan adalah DataFrame transaksi dan barang. Ada sedikit perbedaan pada kode berikut ini dikarenakan adanya beda nama key yang akan digabungkan.
# menggabungkan 2 dataframe yaitu transaksi dan barang secara right join
df3 = pd.merge(transaksi,barang, left_on = 'idbarang', right_on = 'idbrg', how='right')
df3
Keluaran dari kode diatas adalah
Pandas Join 3 DataFrame
Pada bagian ini akan dicontohkan menggabungkan 3 dataframe secara inner join. DataFrame yang akan digabungkan adalah transaksi, pelanggan dan barang. Berikut kode progamnya.
# menggabungkan 3 dataframe yaitu pelanggan, transaksi dan barang secara inner join
df4 = pd.merge(pelanggan, transaksi, on = 'idpelanggan', how='inner')
df5 = pd.merge(df4, barang, left_on = 'idbarang', right_on = 'idbrg', how='inner')
df5
Hasil keluaran dari kode diatas adalah
Kesimpulan
Proses menggabungkan beberapa Pandas DataFrame dapat dilakukan baik secara inner, left, atau right join. Bahkan, jika dibaca dokumentasi cara join pada Pandas DataFrame ada beberapa teknik lagi yang belum dibahas pada tulisan ini. Namun, untuk pengetahuan dasar mengetahui 3 cara ini. Artikel terkait data science dapat dilihat di sini.