Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Ralat Bertindih Lajur Semasa Menggabungkan Bingkai Data Pandas dengan `join()`?

Bagaimana untuk Menyelesaikan Ralat Bertindih Lajur Semasa Menggabungkan Bingkai Data Pandas dengan `join()`?

Patricia Arquette
Patricia Arquetteasal
2024-10-27 06:07:03206semak imbas

How to Resolve Column Overlap Errors While Combining Pandas Data Frames with `join()`?

Menggabungkan Bingkai Data Panda menggunakan Gabungan pada Lajur Biasa

Apabila bekerja dengan tugasan analisis data, selalunya perlu untuk menggabungkan data daripada berbilang sumber ke dalam bingkai data tunggal . Pandas menyediakan beberapa kaedah untuk melaksanakan cantuman bingkai data, salah satunya ialah merge() yang membolehkan kami menggabungkan bingkai data berdasarkan lajur biasa.

Andaikan kami mempunyai dua bingkai data:

restaurant_ids_dataframe:

Column Name Data Type
business_id int
categories object
city object
full_address object
latitude float
longitude float
name object
neighborhoods object
open bool
review_count int
stars float
state object
type object

restaurant_review_frame:

Column Name Data Type
business_id int
date object
review_id int
stars float
text object
type object
user_id int
votes int

Matlamatnya adalah untuk menggabungkan bingkai data ini menjadi satu bingkai data menggunakan DataFrame.join () kaedah. Kami biasanya menjangkakan penyertaan akan dilakukan pada business_id lajur biasa. Walau bagaimanapun, apabila mencuba baris kod berikut:

restaurant_review_frame.join(other=restaurant_ids_dataframe, on='business_id', how='left')

kami menerima ralat:

Exception: columns overlap: Index([business_id, stars, type], dtype=object)

Untuk menyelesaikan isu ini, kami harus menggunakan kaedah merge() sebaliknya, menyatakan lajur biasa dalam parameter hidup. Kaedah merge() direka untuk mengendalikan lajur bertindih dan menggabungkan bingkai data dengan sewajarnya. Sintaksnya ialah:

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

Di sini, cara parameter mentakrifkan jenis cantuman yang akan dilakukan. Dalam kes ini, kami telah menggunakan outer, yang melakukan gabungan luar penuh, menggabungkan semua baris daripada kedua-dua bingkai data.

Selain itu, kami boleh menentukan akhiran untuk lajur yang digabungkan menggunakan parameter akhiran, membolehkan kami menyesuaikan nama lajur dalam bingkai data yang terhasil. Contohnya, untuk mengakhirkan lajur sebagai star_restaurant_id dan star_restaurant_review, kita boleh menggunakan:

<code class="python">pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer', suffixes=('_restaurant_id', '_restaurant_review'))</code>

Kaedah merge() menawarkan set parameter komprehensif yang menyediakan kawalan terperinci ke atas operasi gabungan, membolehkan cekap dan gabungan bingkai data yang tepat.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Bertindih Lajur Semasa Menggabungkan Bingkai Data Pandas dengan `join()`?. 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