データ分析タスクを使用する場合、多くの場合、複数のソースからのデータを 1 つのデータ フレームに結合する必要があります。 。 Pandas には、データ フレーム結合を実行するためのメソッドがいくつか用意されています。そのうちの 1 つは、共通の列に基づいてデータ フレームを結合できる merge() です。
2 つのデータ フレームがあるとします。
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 |
目標は、DataFrame.join を使用してこれらのデータ フレームを 1 つのデータ フレームに結合することです。 () 方法。通常、結合は共通列 business_id に対して実行されることが予想されます。ただし、次のコード行を試行すると:
restaurant_review_frame.join(other=restaurant_ids_dataframe, on='business_id', how='left')
エラーが発生します:
Exception: columns overlap: Index([business_id, stars, type], dtype=object)
この問題を解決するには、代わりに merge() メソッドを使用して、 on パラメータの共通列。 merge() メソッドは、重複する列を処理し、それに応じてデータ フレームを結合するように設計されています。構文は次のようになります:
<code class="python">import pandas as pd pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer')</code>
ここで、how パラメータは実行される結合のタイプを定義します。この場合、両方のデータ フレームのすべての行を結合する完全外部結合を実行する アウター を使用しました。
さらに、suffixes パラメーターを使用して結合された列のサフィックスを指定でき、カスタマイズが可能になります。結果として得られるデータ フレーム内の列名。たとえば、列の末尾に star_restaurant_id および star_restaurant_review を付けるには、次のように使用できます。
<code class="python">pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer', suffixes=('_restaurant_id', '_restaurant_review'))</code>
merge() メソッドは、結合操作をきめ細かく制御できる包括的なパラメータのセットを提供し、効率的かつ効率的な操作を可能にします。正確なデータ フレームの組み合わせ。
以上がPandas データ フレームを「join()」で結合するときに発生する列の重複エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。