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!