ホームページ > バックエンド開発 > Python チュートリアル > プライマリ データフレームからの情報を保持しながら列のデータフレームをマージするにはどうすればよいですか?

プライマリ データフレームからの情報を保持しながら列のデータフレームをマージするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-30 09:42:03
オリジナル
672 人が閲覧しました

How to Merge DataFrames on a Column While Preserving Information from the Primary DataFrame?

情報を保持しながら列のデータフレームをマージする

Pandas を使用して Python でデータを操作する場合、共通の列に基づいてデータフレームをマージするのが一般的ですタスク。ただし、特に重複しているが不完全なデータが含まれている場合、両方のデータフレームからの情報を保持する必要がある場合があります。この記事では、プライマリ データフレームからの情報を確実に保持しながら列のデータフレームをマージするソリューションについて説明します。

問題ステートメント

2 つのデータフレーム df1 と df2 について考えます。 df1 には個人の年齢に関する情報が含まれ、df2 には性別に関する情報が含まれます。目標は、「名前」列の df1 と df2 をマージしますが、df1 からの情報のみを保持することです。個人が両方のデータフレームに常に存在するとは限りません。

解決策

これを実現するには、次のインデックスを設定して作成された Series の map() メソッドを使用できます。マージする列に 1 つのデータフレームを追加します。 map() メソッドを使用すると、マッピング関数を適用できます。この場合、他のデータフレームでのルックアップになります。

<code class="python"># Create the dataframes
df1 = pd.DataFrame({'Name': ['Tom', 'Sara', 'Eva', 'Jack', 'Laura'],
                    'Age': [34, 18, 44, 27, 30]})

df2 = pd.DataFrame({'Name': ['Tom', 'Paul', 'Eva', 'Jack', 'Michelle'],
                    'Sex': ['M', 'M', 'F', 'M', 'F']})

# Set the index of df2 to Name
df2.set_index('Name', inplace=True)

# Perform the lookup using map
df1['Sex'] = df1['Name'].map(df2['Sex'])

# Display the merged dataframe
print(df1)</code>
ログイン後にコピー

代替解決策: Left Join

あるいは、左結合を使用したマージを使用することもできます。これにより、df2 に対応する行がない場合でも、df1 のすべての行がマージされたデータフレームに確実に含まれます。

<code class="python"># Perform the left join
df3 = df1.merge(df2, on='Name', how='left')

# Display the merged dataframe
print(df3)</code>
ログイン後にコピー

注: データフレームにマージ対象の複数の列が含まれている場合は、merge(on=[' Year', 'Code'], how='left') を使用するか、左マージ後の列を指定します (例: df1.merge() df2[['年', 'コード', 'Val']], on=['年', 'コード'], how='left')).

重複の処理

マージに使用される列に重複がある場合は、あいまいさを避けるために重複値を処理することが重要です。これは、drop_duplicates() を使用するか、辞書を使用してマッピングを指定することで実行できます。

以上がプライマリ データフレームからの情報を保持しながら列のデータフレームをマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート