重複しているが同一ではない行を持つ 2 つのデータフレームがある場合、特定のデータフレームに基づいてそれらをマージできます。列に情報を追加します。この場合、2 つのデータフレーム df1 と df2 をマージする必要があります。df1 には年齢に関する情報が含まれ、df2 には性別に関する情報が含まれます。最初のデータフレームの情報を保持しながらそれを行う方法は次のとおりです。
データフレームをマージして最初のデータフレームの情報を保持するには、set_index によって作成されたシリーズとともにマップ関数を使用します。
<code class="python">df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])</code>
向け例:
<code class="python">df1 = pd.DataFrame({'Name': ['Tom', 'Sara', 'Eva', 'Jack', 'Laura'], 'Age': [34, 18, 44, 27, 30], 'Sex': None}) df2 = pd.DataFrame({'Name': ['Tom', 'Paul', 'Eva', 'Jack', 'Michelle'], 'Sex': ['M', 'M', 'F', 'M', 'F']}) df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex']) print(df1)</code>
出力:
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
同じ結果を達成する別の方法は、左側のメソッドを使用してデータフレームをマージすることです。 join:
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left')</code>
例:
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left') print(df)</code>
出力:
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
複数の結合列をマージする必要がある場合列の場合は、追加の結合列と同じ左結合アプローチを使用します。指定:
<code class="python">df = df1.merge(df2[['Name', 'Sex', 'Year', 'Code']], on=['Year', 'Code'], how='left')</code>
重複した結合列が原因でエラーが発生した場合は、重複を削除するか、マッピングにディクショナリを使用して処理します。
以上が最初のデータフレームの情報を保持しながら、列に基づいてデータフレームをマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。