Kami akan mengeksplorasi penggunaan fungsi gabungan, fungsi concat, dan berbagai jenis operasi gabungan di python Pandas dalam artikel ini. Semua contoh akan dieksekusi melalui editor pycharm. Mari kita mulai dengan detailnya!
Penggunaan Fungsi Gabung
Sintaks dasar yang umum digunakan dari fungsi merge () diberikan di bawah ini:
pd.gabung(df_obj1, df_obj2, how='inner', on=Tidak ada, left_on=Tidak ada, right_on=Tidak ada)Mari kita jelaskan detail parameternya:
Dua pertama df_obj1 dan df_obj2 argumen adalah nama objek atau tabel DataFrame.
"bagaimanaParameter ” digunakan untuk berbagai jenis operasi gabungan seperti “kiri, kanan, luar, dan dalam”. Fungsi penggabungan menggunakan operasi gabungan "dalam" secara default.
Argumen "di" berisi nama kolom di mana operasi gabungan dilakukan. Kolom ini harus ada di kedua objek DataFrame.
Dalam argumen "left_on" dan "right_on", "left_on" adalah nama nama kolom sebagai kunci di DataFrame kiri. "right_on" adalah nama kolom yang digunakan sebagai kunci dari DataFrame kanan.
Untuk menguraikan konsep bergabung dengan DataFrames, kami telah mengambil dua objek DataFrame- produk dan pelanggan. Detail berikut ada di DataFrame produk:
produk = pd.Bingkai Data('Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
DataFrame pelanggan berisi detail berikut:
pelanggan=pd.Bingkai Data('ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
Bergabunglah dengan DataFrames dengan Kunci
Kami dapat dengan mudah menemukan produk yang dijual secara online dan pelanggan yang membelinya. Jadi, berdasarkan kunci “Product_ID”, kami telah melakukan operasi penggabungan dalam pada kedua DataFrames sebagai berikut:
# impor perpustakaan Pandasimpor panda sebagai pd
produk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Kota':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.gabungkan(produk,pelanggan,pada='Product_ID'))
Output berikut ditampilkan di jendela setelah menjalankan kode di atas:
Jika kolom berbeda di kedua DataFrame, tuliskan secara eksplisit nama setiap kolom dengan argumen left_on dan right_on sebagai berikut:
impor panda sebagai pdproduk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Kota':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.gabungkan(produk,pelanggan,left_on='Product_Name',right_on='Product_Purchased'))
Output berikut akan ditampilkan di layar:
Bergabunglah dengan DataFrames menggunakan Bagaimana Argumen
Dalam contoh berikut, kami akan menjelaskan empat jenis operasi Joins pada Pandas DataFrames:
- Gabungan Batin
- Gabung Luar
- Gabung Kiri
- Gabung Kanan
Gabung Batin di Panda
Kami dapat melakukan penggabungan dalam pada beberapa tombol. Untuk menampilkan detail lebih lanjut tentang penjualan produk, ambil Product_ID, Seller_City dari DataFrame produk dan Product_ID, dan “Customer_City” dari DataFrame pelanggan untuk menemukan bahwa penjual atau pelanggan berada di kota yang sama. Implementasikan baris kode berikut:
# impor perpustakaan Pandasimpor panda sebagai pd
produk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.gabung(produk,pelanggan,bagaimana='dalam',kiri_on=['ID_Produk','Kota_Penjual'],kanan_on=['ID_Produk','Kota_Pelanggan']))
Hasil berikut muncul di jendela setelah menjalankan kode di atas:
Gabung penuh/luar di Pandas
Gabungan luar mengembalikan nilai DataFrames kanan dan kiri, yang memiliki kecocokan. Jadi, untuk menerapkan gabungan luar, atur argumen "bagaimana" sebagai luar. Mari kita modifikasi contoh di atas dengan menggunakan konsep outer join join. Dalam kode di bawah ini, itu akan mengembalikan semua nilai DataFrames kiri dan kanan.
# impor perpustakaan Pandasimpor panda sebagai pd
produk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.gabungkan(produk,pelanggan,pada='Product_ID',how='luar'))
Tetapkan argumen indikator sebagai “Benar”. Anda akan melihat bahwa kolom "_merge" baru ditambahkan di akhir.
# impor perpustakaan Pandasimpor panda sebagai pd
produk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.gabung(produk,pelanggan,on='Product_ID',how='outer',indicator=True))
Seperti yang Anda lihat pada tangkapan layar di bawah, nilai kolom gabungan menjelaskan baris mana yang termasuk dalam DataFrame.
Kiri Gabung di Pandas
Gabung kiri hanya menampilkan baris DataFrame kiri. Ini mirip dengan gabungan luar. Jadi, ubah nilai argumen 'bagaimana' dengan "kiri". Coba kode berikut untuk mengimplementasikan ide Left join:
# impor perpustakaan Pandasimpor panda sebagai pd
produk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.gabungkan(produk,pelanggan,pada='Product_ID',bagaimana='kiri'))
Gabung Kanan di Pandas
Gabung kanan menyimpan semua baris DataFrame kanan ke kanan bersama dengan baris yang juga umum di DataFrame kiri. Dalam hal ini, argumen "bagaimana" ditetapkan sebagai nilai "benar". Jalankan kode berikut untuk menerapkan konsep join yang benar:
# impor perpustakaan Pandasimpor panda sebagai pd
produk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.gabungkan(produk,pelanggan,pada='Product_ID',how='benar'))
Pada tangkapan layar berikut, Anda dapat melihat hasilnya setelah menjalankan kode di atas:
Bergabung dengan DataFrames menggunakan fungsi Concat ()
Dua DataFrames dapat digabungkan menggunakan fungsi concat. Sintaks dasar dari fungsi penggabungan diberikan di bawah ini:
pd.concat([df_obj1, df_obj_2]))Dua objek DataFrames akan lulus sebagai argumen.
Mari bergabung dengan produk dan pelanggan DataFrames melalui fungsi concat. Jalankan baris kode berikut untuk menggabungkan dua DataFrames:
# impor perpustakaan Pandasimpor panda sebagai pd
produk = pd.Bingkai Data(
'Product_ID':[101.102.103.104.105.106.107],
'Product_Name':['headphone','Tas','Shoes','Smartphone','Sikat gigi','jam tangan','Laptop'],
'Category':['Electronics','Fashion','Fashion','Electronics','Grocery','Fashion','Electronics'],
'Harga':[300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City':['Islamabad','Lahore','Karachi','Rawalpindi','Islamabad','Karachi','Faisalabad']
)
pelanggan=pd.Bingkai Data(
'ID':[1,2,3,4,5,6,7,8,9],
'Nama_Pelanggan':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Usia':[20,21,15,10,31,52,15,18,16],
'Product_ID':[101,0,106,0,103,104,0,0,107],
'Product_Purchased':['headphones','NA','wristwatch','NA','Shoes','Smartphone','NA','NA','Laptop'],
'Customer_City':['Lahore','Islamabad','Faisalabad','Karachi','Karachi','Islamabad','Rawalpindi','Islamabad',
'Lahore']
)
cetak (pd.concat([produk,pelanggan]))
Kesimpulan:
Pada artikel ini, kita telah membahas implementasi fungsi merge(), fungsi concat(), dan operasi join pada python Pandas. Dengan menggunakan metode di atas, Anda dapat dengan mudah bergabung dengan dua DataFrames dan belajar. bagaimana menerapkan operasi Gabung "dalam, luar, kiri, dan kanan" di Pandas. Semoga tutorial ini akan memandu Anda dalam mengimplementasikan operasi gabungan pada berbagai jenis DataFrames. Harap beri tahu kami tentang kesulitan Anda jika terjadi kesalahan.