Kami akan meneroka penggunaan fungsi penggabungan, fungsi concat, dan pelbagai jenis operasi bergabung dalam Pandas python dalam artikel ini. Semua contoh akan dilaksanakan melalui penyunting pycharm. Mari mulakan dengan perinciannya!
Penggunaan Fungsi Gabungan
Fungsi sintaks asas gabungan () yang biasa digunakan diberikan di bawah:
pd.gabungkan (df_obj1, df_obj2, how = 'inner', on = None, left_on = None, right_on = Tiada)Mari jelaskan perincian parameter:
Dua yang pertama df_obj1 dan df_obj2 argumen adalah nama objek atau jadual DataFrame.
The "bagaimana"Parameter digunakan untuk pelbagai jenis operasi bergabung seperti" kiri, kanan, luar, dan dalaman ". Fungsi penggabungan menggunakan operasi bergabung "dalaman" secara lalai.
Hujahnya "Di" mengandungi nama lajur di mana operasi bergabung dijalankan. Lajur ini mesti ada di kedua objek DataFrame.
Dalam argumen "left_on" dan "right_on", "left_on" adalah nama nama lajur sebagai kunci di DataFrame kiri. "Right_on" adalah nama lajur yang digunakan sebagai kunci dari DataFrame kanan.
Untuk menghuraikan konsep bergabung dengan DataFrames, kami telah mengambil dua objek DataFrame - produk dan pelanggan. Maklumat berikut terdapat dalam DataFrame produk:
produk = pd.DataFrame ('Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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 mengandungi butiran berikut:
pelanggan = pd.DataFrame ('ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'jam tangan', 'NA', 'Kasut', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
Sertai DataFrames dengan Kekunci
Kami dapat dengan mudah mencari produk yang dijual dalam talian dan pelanggan yang membelinya. Oleh itu, berdasarkan kunci "Product_ID", kami telah melakukan operasi bergabung dalaman pada kedua DataFrames seperti berikut:
# import perpustakaan Pandasimport panda sebagai pd
produk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'jam tangan', 'NA', 'Kasut', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Bandar': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.menggabungkan (produk, pelanggan, pada = 'Product_ID'))
Output berikut dipaparkan di tetingkap setelah menjalankan kod di atas:
Sekiranya lajur berbeza di keduaFrame Data, tulis secara jelas nama setiap lajur dengan argumen left_on dan right_on seperti berikut:
import panda sebagai pdproduk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'jam tangan', 'NA', 'Kasut', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Bandar': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.penggabungan (produk, pelanggan, left_on = 'Product_Name', right_on = 'Product_Purchased'))
Output berikut akan dipaparkan di skrin:
Sertailah DataFrames menggunakan How Argument
Dalam contoh berikut, kami akan menerangkan empat jenis operasi Bergabung di Pandas DataFrames:
- Inner Sertai
- Sambungan Luar
- Siri Kiri
- Bergabung dengan betul
Penyertaan Dalam di Pandas
Kita boleh melakukan gabungan dalaman dengan beberapa kekunci. Untuk memaparkan lebih banyak perincian mengenai penjualan produk, ambil Product_ID, Seller_City dari ProductFrame dan Product_ID, dan "Customer_City" dari pelanggan DataFrame untuk mengetahui bahawa penjual atau pelanggan milik bandar yang sama. Laksanakan garis kod berikut:
# import perpustakaan Pandasimport panda sebagai pd
produk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'jam tangan', 'NA', 'Kasut', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.penggabungan (produk, pelanggan, bagaimana = 'dalaman', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))
Hasil berikut ditunjukkan di tingkap setelah menjalankan kod di atas:
Gabung penuh / luar di Pandas
Gabungan luar mengembalikan nilai DataFrames kanan dan kiri, yang sama ada mempunyai padanan. Jadi, untuk melaksanakan gabungan luar, tetapkan argumen "bagaimana" sebagai luaran. Mari ubah contoh di atas dengan menggunakan konsep gabungan luar. Dalam kod di bawah, ia akan mengembalikan semua nilai DataFrames kiri dan kanan.
# import perpustakaan Pandasimport panda sebagai pd
produk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.penggabungan (produk, pelanggan, pada = 'Product_ID', bagaimana = 'luar'))
Tetapkan argumen penunjuk sebagai "Benar" s. Anda akan melihat bahawa lajur "_merge" baru ditambahkan pada akhir.
# import perpustakaan Pandasimport panda sebagai pd
produk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'jam tangan', 'NA', 'Kasut', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.penggabungan (produk, pelanggan, pada = 'Product_ID', bagaimana = 'luar', penunjuk = Benar))
Seperti yang anda lihat dalam tangkapan skrin di bawah, nilai kolum gabungan menjelaskan baris mana yang termasuk dalam DataFrame.
Kiri Bergabung di Pandas
Gabungan kiri hanya memaparkan baris dataFrame kiri. Ia serupa dengan gabungan luar. Jadi, ubah nilai argumen 'bagaimana' dengan "kiri". Cubalah kod berikut untuk menerapkan idea gabungan Kiri:
# import perpustakaan Pandasimport panda sebagai pd
produk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'jam tangan', 'NA', 'Kasut', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.penggabungan (produk, pelanggan, pada = 'Product_ID', bagaimana = 'kiri'))
Ikut Kanan di Pandas
Gabungan kanan menyimpan semua baris DataFrame kanan ke kanan bersama dengan baris yang juga biasa di DataFrame kiri. Dalam kes ini, argumen "bagaimana" ditetapkan sebagai nilai "benar". Jalankan kod berikut untuk melaksanakan konsep gabungan yang betul:
# import perpustakaan Pandasimport panda sebagai pd
produk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'wrist watch', 'NA', 'Shoes', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.bergabung (produk, pelanggan, pada = 'Product_ID', bagaimana = 'betul'))
Pada tangkapan skrin berikut, anda dapat melihat hasilnya setelah menjalankan kod di atas:
Bergabung dengan DataFrames menggunakan fungsi Concat ()
Dua DataFrames boleh digabungkan menggunakan fungsi concat. Sintaks asas fungsi penggabungan diberikan di bawah:
pd.ringkas ([df_obj1, df_obj_2]))Dua objek DataFrames akan lulus sebagai argumen.
Mari sertai produk dan pelanggan DataFrames melalui fungsi concat. Jalankan baris kod berikut untuk bergabung dengan dua DataFrames:
# import perpustakaan Pandasimport panda sebagai pd
produk = pd.DataFrame (
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['headphone', 'Bag', 'Shoes', 'Smartphone', 'Gigi berus', 'jam tangan', 'Laptop'],
'Kategori': ['Elektronik', 'Fesyen', 'Fesyen', 'Elektronik', 'Barangan runcit', 'Fesyen', 'Elektronik'],
'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.DataFrame (
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Umur': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['headphone', 'NA', 'jam tangan', 'NA', 'Kasut', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
mencetak (pd.ringkas ([produk, pelanggan]))
Kesimpulan:
Dalam artikel ini, kami telah membincangkan pelaksanaan fungsi gabungan (), fungsi concat (), dan bergabung dalam operasi di Pandas python. Dengan menggunakan kaedah di atas, anda boleh bergabung dengan dua DataFrames dan dipelajari dengan mudah. bagaimana melaksanakan operasi Bergabung "dalaman, luar, kiri, dan kanan" di Pandas. Mudah-mudahan, tutorial ini akan membimbing anda dalam melaksanakan operasi bergabung pada pelbagai jenis DataFrames. Beritahu kami tentang kesukaran anda sekiranya berlaku kesilapan.