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

Mary-Kate Olsen
リリース: 2024-10-31 01:35:03
オリジナル
522 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!