November 30, 2021
Pandas Join 2 DataFrame

Menggabungkan Pandas DataFrame

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.

DataFrame pelanggan
DataFrame transaksi
DataFrame barang

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 2 Pandas DataFrame
Hasil inner join pelanggan dan transaksi

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

Menggabungkan 2 Pandas DataFrame
Hasil penggabungan pelanggan dan transaksi

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

Menggabungkan 2 Pandas DataFrame
Hasil penggabungan transaksi dan barang

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

Penggaabungan 3 DataFrame yaitu pelanggan, transaksi dan barang

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.

Rajo Intan

Blogger, pemiliki Onestring Lab, menulis artikel terkait teknologi informasi dan pendidikan. Web Developer, berpengalaman lebih dari 20 tahun mengembangkan berbagai aplikasi dan sistem informasi. Kerjasama kontak di onestringlab@gmail.com atau https://forms.gle/xAGKkpi6B3BzJyzk7

View all posts by Rajo Intan →