ホームページ  >  記事  >  バックエンド開発  >  Pandas でインデックスによって DataFrame をマージするにはどうすればよいですか?また、利用可能なマージにはどのような種類がありますか?

Pandas でインデックスによって DataFrame をマージするにはどうすればよいですか?また、利用可能なマージにはどのような種類がありますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-31 01:35:03504ブラウズ

How do you merge DataFrames in Pandas by index and what are the different types of merges available?

インデックスによる DataFrame のマージ: 総合ガイド

インデックスに基づいて 2 つの DataFrame をマージすることは、一般的なデータ操作タスクです。ただし、マージが正しく行われないと、エラーや予期しない動作が発生する可能性があります。このガイドでは、インデックスによるマージのさまざまな方法を詳しく説明し、その主な違いと潜在的な落とし穴に焦点を当てます。

マージ関数について

Python の Pandas ライブラリでは、 DataFrame のマージには、merge、join、concat などのいくつかの関数を使用できます。各関数には独自のデフォルトの結合タイプがあります。

  • merge: 内部結合
  • join: 左結合
  • concat: 外部結合

インデックスによるマージ

インデックスによって 2 つの DataFrame をマージするには、left_index パラメーターと right_index パラメーターを指定する必要があります。マージまたは結合関数で。これは、DataFrame の行ラベル (インデックス) を結合キーとして使用するように Pandas に指示します。

例:

次の 2 つの DataFrame について考えます:

<code class="python">df1 = pd.DataFrame({'a': range(6), 'b': [5, 3, 6, 9, 2, 4]}, index=list('abcdef'))
df2 = pd.DataFrame({'c': range(4), 'd': [10, 20, 30, 40]}, index=list('abhi'))</code>

内部結合 (デフォルト):

マージ関数を使用して内部結合を実行するには:

<code class="python">pd.merge(df1, df2, left_index=True, right_index=True)</code>

出力:

   a  b  c   d
a  0  5  0  10
b  1  3  1  20

左結合 (デフォルト):

結合関数を使用して左結合を実行するには:

<code class="python">df1.join(df2)</code>

出力:

   a  b    c     d
a  0  5  0.0  10.0
b  1  3  1.0  20.0
c  2  6  NaN   NaN
d  3  9  NaN   NaN
e  4  2  NaN   NaN
f  5  4  NaN   NaN

外部結合:

concat 関数を使用して外部結合を実行するには:

<code class="python">pd.concat([df1, df2], axis=1)</code>

出力:

     a    b    c     d
a  0.0  5.0  0.0  10.0
b  1.0  3.0  1.0  20.0
c  2.0  6.0  NaN   NaN
d  3.0  9.0  NaN   NaN
e  4.0  2.0  NaN   NaN
f  5.0  4.0  NaN   NaN
h  NaN  NaN  2.0  30.0
i  NaN  NaN  3.0  40.0

重要な注意事項:

  • 結合列のサイズがデータフレーム全体と比較して小さい場合、インデックスによる結合は効率的です。
  • インデックスによる外部結合は計算コストがかかる可能性があります。
  • 一般に、マージを実行する前にインデックスを列にシフトすることが良い方法であると考えられています。

以上がPandas でインデックスによって DataFrame をマージするにはどうすればよいですか?また、利用可能なマージにはどのような種類がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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