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
Lepaskan: 2024-12-27 13:17:11
asal
348 orang telah melayarinya

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')
    Salin selepas log masuk

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')
    Salin selepas log masuk

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')
    Salin selepas log masuk

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')
    Salin selepas log masuk

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))
    Salin selepas log masuk

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))
    Salin selepas log masuk

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))
    Salin selepas log masuk

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')
Salin selepas log masuk

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'] ...)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan