Penggabungan data antara dua dataset atau lebih adalah hal yang biasa dilakukan selama pemrosesan data.
Pada blog ini, kita akan belajar bagaimana penggabungan data mengunakan Pandas, serta berbagai tips untuk meningkatkan keterampilan penggabungan data. Mari kita jelajahi teknik penggabungan data.
Menggabungkan DataFrame Pandas
Pertama, kita perlu mengimpor paket Pandas.
import pandas as pd
Menggabungkan dua DataFrame Pandas memerlukan metode merge dari paket Pandas. Fungsi ini akan menggabungkan dua DataFrame berdasarkan variabel atau kolom yang ingin kita gabungkan.
Mari coba metode penggabungan Pandas menggunakan contoh DataFrame.
# Buat DataFrame Populasi
df1 = pd.DataFrame({
'Country': ['America', 'Indonesia', 'France'],
'Location': ['New York', 'Jakarta', 'Paris'],
'Population': [731800, 575030, 183305]
})
# Buat DataFrame Pemasukan
df2 = pd.DataFrame({
'Country': ['America', 'America', 'Indonesia', 'India', 'France', 'Greece'],
'Location': ['New York', 'Chicago', 'Jakarta', 'Mumbai', 'Paris', 'Yunani'],
'Income': [1000, 1500, 1400, 1100, 900, 1200]
})
# Gabungkan Dataframe
merged_df = pd.merge(df1, df2, on='Country')
merged_df
Pada contoh di atas, kita membuat dua DataFrame berbeda dengan kolom yang sedikit berbeda, dan kita menggabungkannya berdasarkan kolom Country. Hasilnya adalah baris-baris dari kedua DataFrame dengan nilai yang sama digabungkan.
Dengan satu baris kode, kita berhasil menggabungkan dua DataFrame yang berbeda.
Menggunakan Parameter Opsional
Metode .merge dari Pandas memiliki berbagai parameter opsional yang bisa kita manfaatkan. Mari kita lihat beberapa yang sering digunakan.
Mengganti nama kolom yang digabungkan dengan nama yang sama
Pada contoh di atas, kita bisa melihat kolom dengan nama ‘Location’ yang mengandung akhiran x dan y setelah penggabungan. Jika kita ingin mengubah nama kolom saat terjadi penggabungan, kita bisa melakukannya dengan kode berikut.
merged_df = pd.merge(df1, df2, on='Country', suffixes = ('_Population', '_Income'))merged_df
Pada kode ini, kita melewatkan parameter suffixes dengan tuple berisi dua nilai; nama DataFrame pertama dan kedua. Dalam contoh saya, saya menamai DataFrame pertama Population dan DataFrame kedua Income.
Menggabungkan berdasarkan nama kolom yang berbeda
Bagaimana jika kita memiliki dua DataFrame dengan dua nama kolom berbeda yang merujuk pada definisi yang sama? Kita masih bisa menggabungkannya, tetapi kita perlu menentukan DataFrame dan kolom mana yang ingin kita gabungkan.
df2 = pd.DataFrame({
'Index': ['America', 'America', 'Indonesia', 'India', 'France', 'Greece'],
'Location': ['New York', 'Chicago', 'Jakarta', 'Mumbai', 'Paris', 'Yunani'],
'Income': [1000, 1500, 1400, 1100, 900, 1200]
})
merged_df = pd.merge(df1, df2, left_on='Country', right_on = 'Index')
merged_df
Pada contoh di atas, kita mengubah kolom ‘Country’ pada DataFrame kedua menjadi ‘Index’, lalu kita menggabungkan dataset dengan menentukan nama kolom pada setiap DataFrame. Parameter left_on untuk DataFrame pertama dan right_on untuk DataFrame kedua.
Mengubah tipe penggabungan
Ada lima tipe penggabungan berbeda dalam metode Pandas merge. Secara default, penggabungan adalah penggabungan Inner yang hanya mencakup baris dengan nilai yang cocok di kedua kolom. Namun, kita bisa mengubah tipe penggabungan dengan melewatkan nilai pada parameter how:
1.Left
Left merge hanya menggunakan nilai dari DataFrame pertama.
merged_df = pd.merge(df1, df2, on='Country', how = 'left')
merged_df
2. Right
Right merge hanya menggunakan nilai dari DataFrame kedua.
merged_df = pd.merge(df1, df2, on='Country', how = 'right')
merged_df
3. Outer
Mencakup semua baris dari kedua DataFrame dengan menggunakan union dari kunci kedua DataFrame.
merged_df = pd.merge(df1, df2, on='Country', how = 'outer')
merged_df
4. Cross
Membuat produk kartesius dari kedua DataFrame
merged_df = pd.merge(df1, df2, how = 'cross')
merged_df
Menggabungkan dengan dua atau lebih kolom berbeda
Dengan Pandas merge, memungkinkan untuk menggabungkan dua DataFrame dengan dua atau lebih kolom berbeda. Kita perlu menentukan dalam parameter on dengan melewatkan daftar kolom yang ingin kita gabungkan.
merged_df = pd.merge(df1, df2, on = ['Country', 'Location'])
merged_df
Kesimpulan
Selama pemrosesan data, menggabungkan dua DataFrame yang berbeda adalah aktivitas umum. Untuk melakukannya, kita bisa menggunakan metode Pandas merge. Ada berbagai parameter opsional yang bisa kita akses dalam Pandas merge untuk melakukan tugas-tugas tertentu, termasuk mengubah nama kolom yang digabungkan, menggabungkan DataFrame berdasarkan nama kolom yang berbeda, mengubah tipe penggabungan, dan menggabungkan dengan dua kolom atau lebih.
Comments