panda

Cara Bergabung dengan DataFrames di Pandas Python?

Cara Bergabung dengan DataFrames di Pandas Python?
Pandas DataFrame adalah struktur data dua dimensi (2D) yang sejajar dalam format jadual. DataFrames ini dapat digabungkan menggunakan kaedah yang berbeza seperti concat (), merge (), dan join. Panda mempunyai prestasi tinggi, dan operasi bergabung dengan ciri lengkap yang menyerupai pangkalan data hubungan SQL. Dengan menggunakan fungsi penggabungan, operasi bergabung dapat dilaksanakan antara objek DataFrames.

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 Pandas
import 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 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.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:

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

Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...
Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...
Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...