Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pandas DataFrames Bercantum Menggunakan Jenis Gabungan Berbeza?

Bagaimanakah Pandas DataFrames Bercantum Menggunakan Jenis Gabungan Berbeza?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-27 13:17:11407semak imbas

How Do Pandas DataFrames Merge Using Different Join Types?

Pandas Penggabungan 101

Memahami Penggabungan

Penggabungan menggabungkan dua atau lebih DataFrames berdasarkan kunci kongsi untuk mencipta DataFrame baharu . Pandas menyediakan pelbagai jenis cantuman, termasuk cantuman DALAM, KIRI, KANAN dan LUAR PENUH.

Jenis Cantuman Asas

a. INNER JOIN

  • Menggabungkan baris yang berkongsi kunci biasa dalam kedua-dua DataFrames.
  • Contoh:

    left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': np.random.randn(4)})
    right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': np.random.randn(4)})
    left.merge(right, on='key')

b. LEFT OUTER JOIN

  • Mengekalkan semua baris dari DataFrame kiri, menambah nilai NaN untuk kekunci yang hilang dalam DataFrame kanan.
  • Contoh:

    left.merge(right, on='key', how='left')

c. RIGHT OUTER JOIN

  • Mengekalkan semua baris dari DataFrame kanan, menambah nilai NaN untuk kekunci yang hilang dalam DataFrame kiri.
  • Contoh:

    left.merge(right, on='key', how='right')

d. FULL OUTER JOIN

  • Menggabungkan semua baris daripada kedua-dua DataFrames, menambah nilai NaN untuk kekunci yang tiada.
  • Contoh:

    left.merge(right, on='key', how='outer')

Mengecualikan Data dengan Kiri/Kanan Mengecualikan Sertaan

Jika anda perlu mengecualikan baris tertentu, anda boleh melakukan SERTAI Kiri-Mengecualikan atau Kanan-Mengecualikan dengan terlebih dahulu melakukan SERTAI LUAR KIRI/KANAN dan menapis untuk mengecualikan baris daripada DataFrame yang lain.

e. Kiri-Tidak Termasuk SERTAI

  • Mengecualikan baris dari DataFrame kanan yang terdapat dalam DataFrame kiri.
  • Contoh:

    (left.merge(right, on='key', how='left', indicator=True)
     .query('_merge == "left_only"')
     .drop('_merge', 1))

f. Kanan-Tidak Termasuk SERTAI

  • Mengecualikan baris dari kiri DataFrame hadir dalam DataFrame kanan.
  • Contoh:

    (left.merge(right, on='key', how='right', indicator=True)
     .query('_merge == "right_only"')
     .drop('_merge', 1))

g. ANTI JOIN

  • Menggabungkan baris yang tidak terdapat dalam kedua-dua DataFrames.
  • Contoh:

    (left.merge(right, on='key', how='outer', indicator=True)
     .query('_merge != "both"')
     .drop('_merge', 1))

Mengendalikan Kunci Pendua Lajur

Untuk mengelakkan lajur kunci pendua dalam output, anda boleh menetapkan indeks yang sesuai sebagai kunci sebelum bergabung:

left3 = left2.set_index('keyLeft')
left3.merge(right2, left_index=True, right_on='keyRight')

Bercantum pada Berbilang Lajur

Untuk menyertai berbilang lajur, nyatakan senarai untuk di (atau kiri_di dan kanan_di, sebagai sesuai).

left.merge(right, on=['key1', 'key2'] ...)

Fungsi Gabungan Tambahan

  • pd.merge_ordered: Untuk JOIN yang dipesan.
  • pd.merge_asof: Untuk anggaran menyertai.

Rujuk dokumentasi pada gabungkan, sertai dan gabungkan untuk contoh dan kes yang lebih khusus.

Atas ialah kandungan terperinci Bagaimanakah Pandas DataFrames Bercantum Menggunakan Jenis Gabungan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah basestring dalam Python?Artikel seterusnya:Apakah basestring dalam Python?