Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggabungkan Pandas DataFrames dengan Lajur Bertindih?

Bagaimana untuk Menggabungkan Pandas DataFrames dengan Lajur Bertindih?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 03:23:02894semak imbas

How to Combine Pandas DataFrames with Overlapping Columns?

Cara Menggabungkan Bingkai Data Pandas Berdasarkan Lajur Dikongsi

Masalah:

Apabila cuba menggabungkan dua data panda bingkai menggunakan kaedah DataFrame.join(), ralat ditemui: "Lajur bertindih."

Bingkai Data:

  • restaurant_ids_dataframe: Mengandungi maklumat tentang restoran ID, kategori, alamat, dll.
  • restaurant_review_frame: Termasuk data semakan seperti tarikh, bintang, ID pengguna, dll.

Kod Percubaan:

<code class="python">restaurant_review_frame.join(other=restaurant_ids_dataframe, on='business_id', how='left')</code>

Ralat:

<code class="text">Exception: columns overlap: Index([business_id, stars, type], dtype=object)</code>

Penyelesaian:

Untuk menyelesaikan ralat dan menggabungkan bingkai data, gunakan kaedah merge() dan bukannya join():

<code class="python">import pandas as pd
result = pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer')</code>

Secara lalai, merge() menggunakan gabungan luar, yang menggabungkan semua baris daripada kedua-dua bingkai data. Argumen on menentukan lajur yang digunakan untuk melaksanakan operasi penggabungan.

Akhiran untuk Lajur Bertindih:

Memandangkan kedua-dua bingkai data mempunyai lajur bernama bintang, bingkai data yang digabungkan akan mengandungi dua lajur: stars_x dan stars_y. Untuk menyesuaikan akhiran ini, gunakan hujah akhiran:

<code class="python">result = pd.merge(..., suffixes=('_restaurant_id', '_restaurant_review'))</code>

Ini akan menamakan semula lajur bintang kepada stars_restaurant_id dan stars_restaurant_review dalam bingkai data yang digabungkan.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Pandas DataFrames dengan Lajur Bertindih?. 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