Untuk keperluan tutorial ini kita gunakan dataset sederhana. Silakan download di https://drive.google.com/file/d/1qzXAqT-pneSxEaDhJLlRZtpcrrNdvFDM/view?usp=sharing
Pertama import library yang digunakan, lalu load data.
import pandas as pd students = pd.read_csv("students.csv") teachers = pd.read_csv("teachers.csv") grades1 = pd.read_csv("grades1.csv") grades2 = pd.read_csv("grades2.csv") contacts = pd.read_csv("contact.csv")
Menambahkan Kolom
Kita tambahkan kolom semester pada dataframe grades1 dan grades2. Lalu gabungkan menjadi satu dataframe grades dengan perintah concat.
grades1["Semester"] = 1 grades2["Semester"] = 2 grades = pd.concat([grades1, grades2])
Jika kita lihat isi dataframe grades, kurang lebih seperti berikut.
student_id course grade Semester
0 34292 ENGL101 A 1
1 34293 ENGL101 A 1
2 34294 ENGL101 C 1
3 34295 ENGL101 C 1
4 34296 ENGL101 C 1
... ... ... ... ...
Yang perlu diperhatikan adalah perintah concat tidak mengubah index dataframe. Perlu dilakukan reset_index. Parameter drop=True akan mengganti index lama dengan index baru dengan nilai incremental integer.
grades = grades.reset_index(drop=True)
Merging Horizontal
Contoh kasus: menggabungkan data student dan grade. Dataframe akhir akan berisi data seperti: idstudent, nama, course, grade, dan semester.
Boleh dikatakan merging horizontal seperti perintah SELECT pada SQL, dimana kita mendefinisikan WHERE dengan parameter left_on dan right_on.
Untuk lebih jelasnya lihat code dibawah. left_on diisi dengan id dari dataframe students, dan right_on diisi dengan student_id dari dataframe grades.
student_grades = pd.merge(students, grades, left_on="id", right_on="student_id")

Jika primary key yang digunakan memiliki nama kolom sama, gunakan parameter on=”nama_kolom_primary_key”.
Contoh, gabungkan dataframe students dengan contact. Pertama kita ubah dahulu kolom id pada students menjadi students_id
students2 = students.rename({"id": "student_id"}, axis=1) students_full = students2.merge(contacts, on="student_id")
Jika kita lihat, isi dataframe akan seperti berikut

Parameter lainnya yang perlu diperhatikan adalah how, terdapat 4 option.
pd.merge(leftdf, rightdf, left_on="columnkey", right_on="columnkey", how="how_parameter")
- inner, default adalah inner, merge terjadi bila kedua dataset memiliki primary key
- outer, merge tanpa memperhatikan primary key.
- left, merge berdasarkan semua left dataset.
- right, merge berdasarkan semua right dataset.
Menggunakan Join
Kita dapat gunakan perintah join untuk merging dataframe. Perintah join harus menggunakan index sebagai primary key.
Contoh skenario menggabungkan data students dengan contact. Maka langkah pertama adalah mengatur index menggunakan kolom primary key.
Baru kemudian perintah join bisa digunakan untuk merge kedua dataframe.
students2 = students.set_index("id") contacts2 = contacts.set_index("student_id") students2.join(contacts2)
