panda

Cara Bergabung dengan DataFrames di Pandas Python?

Cara Bergabung dengan DataFrames di Pandas Python?
Pandas DataFrame adalah struktur data dua dimensi (2D) yang disejajarkan dalam format tabel. DataFrames ini dapat digabungkan menggunakan metode yang berbeda seperti concat(), merge(), dan joins. Panda memiliki kinerja tinggi, dan operasi gabungan berfitur lengkap yang mirip dengan database relasional SQL. Menggunakan fungsi gabungan, operasi gabungan dapat diimplementasikan di antara objek DataFrames.

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 Pandas
impor 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 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,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:

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 Pandas
impor 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 Pandas
impor 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 Pandas
impor 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 Pandas
impor 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 Pandas
impor 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 Pandas
impor 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.

Cara mengunduh dan Memainkan Civilization VI Sid Meier di Linux
Pengenalan permainan Civilization 6 adalah konsep modern dari konsep klasik yang diperkenalkan dalam seri game Age of Empires. Idenya cukup sederhana;...
Cara Menginstal dan Memainkan Doom di Linux
Pengantar Doom Seri Doom berasal dari tahun 90-an setelah rilis Doom. Itu adalah hit instan dan sejak saat itu seri game telah menerima banyak penghar...
Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...