ホームページ  >  記事  >  バックエンド開発  >  1 つのデータフレームの初期情報を保持しながら列のデータフレームをマージするにはどうすればよいですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 12:50:02360ブラウズ

How to Merge DataFrames on a Column While Preserving the Initial Information in One DataFrame?

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

Pandas のマージ関数を使用しているにもかかわらず、データフレーム df1 と df2 をマージするときに問題が発生していますdf1 を保持したまま、「名前」列にinformation.

問題:

マージ操作内:
df1 = pd.merge(df1, df2, on = 'Name', how = 'outer ')

両方のデータフレームの個人を含む外部結合を実行しています。これにより、元々 df1 に表示されなかった場合でも、df2 の個人が df1 に含まれるようになります。

解決策:

この問題に対処するには、次の方法を使用できます。

方法 1: 作成されたシリーズによるマップを使用するset_index:

df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])

このアプローチは、df2 の 'Sex' 列からのインデックスとして 'Name' を持つシリーズを確立します。次に、df1 の「名前」列がこのシリーズにマップされ、一致する「性別」値が割り当てられます。欠損値は NaN に設定することで解決されます。

方法 2: 左結合の実行:

df = df1.merge(df2[['Name','Sex']], on='Name', how='left')

左結合により、df1 の個人が優先されるようになります。欠損値が存在しない場合は NaN で埋められます。 df2.

考慮事項:

  • 複数のマージ列: 複数の列をマージする場合は、それらを 'on' パラメーターで指定します。例えば。、 on=['年','コード'].
  • 重複する値: マージ列の値が重複すると、問題が発生する可能性があります。マージする前に重複を削除するか、辞書によるマップを使用して適切な値を選択することを検討してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。