Pada modul ini kita akan bahas method merge dengan cara outer join.
Kebalikan dari inner join, outer join akan mengambil semua data yang ada dikedua dataframe.
Untuk lebih jelasnya langsung kita coba dalam code.
Pertama kita load library dan data yang digunakan.
import pandas as pd
salesw1 = pd.read_csv("Restaurant - Week 1 Sales.csv")
salesw2 = pd.read_csv("Restaurant - Week 2 Sales.csv")
Parameter merge yang umum digunakan adalah
- how: cara join, pada modul ini akan dibahas penggunaan outer.
- on: kolom yang digunakan sebagai key untuk proses join.
- suffixes: untuk menambahkan text suffix pada kolom hasil merge.
Contoh code merge salesw1 dan salesw2 dengan key kolom customer id dan cara join yang digunakan adalah outer.
salesw1.merge(salesw2, how="outer", on="Customer ID")
Dapat diperhatikan, data NaN menunjukan data tersebut tidak terdapat di dataframe kedua.
Jadi untuk customer 97, terdapat di week1 namun tidak ada di week2. Sementara untuk customer 855 ada di week2 namun tidak di week1.
Lalu bagaimana bila kita hanya ingin mengambil data yang hanya ada di dataframe kiri dan data frame kanan saja?
Anda dapat menggunakan parameter indicator=True untuk mendapatkan informasi dimana data tersebut berada, lalu lakukan filtering.
merge = salesw1.merge(salesw2, how="outer", on="Customer ID", indicator=True)
Jika Anda sudah mengetahui informasi data terdapat di dataframe yang mana, berikutnya sangat mudah, yaitu dengan menggunakan filtering.
kond = merge["_merge"].isin(["left_only", "right_only"]) merge[kond]