ホームページ > バックエンド開発 > Python チュートリアル > 共通の列に基づいて複数の Pandas DataFrame を効率的にマージする方法

共通の列に基づいて複数の Pandas DataFrame を効率的にマージする方法

Barbara Streisand
リリース: 2024-11-25 15:25:16
オリジナル
902 人が閲覧しました

How to Efficiently Merge Multiple Pandas DataFrames Based on a Common Column?

3 方向結合による Pandas の列の複数の DataFrame のマージ

データ分析の基本的なタスクであるデータのマージを使用すると、次のことを行うことができます。複数のソースからのデータ。 Pandas では、join() 関数はデータフレームを結合するための強力なツールです。ただし、複数のデータフレームを結合する場合、階層インデックス作成スキームに関連する問題が発生する可能性があります。

共通列を使用した 3 方向結合

3 つの列があるシナリオを考えてみましょう。 CSV ファイル。各ファイルには同じグループに関する情報が含まれています。各ファイルの最初の列は人の名前であり、後続の列はその人の属性を表します。目標は、これらのファイルを 1 つの CSV に結合し、各行に各個人のすべての属性を含めることです。

階層型インデックスとマルチインデックス

Pandas では、マルチインデックスは、各インデックスレベルが異なる列を表すインデックス付けスキームを指します。データフレームを結合する場合、共有値に基づいてデータを整列するためにマルチインデックスが使用されます。あなたの場合、「結合」関数は、各データフレームのインデックスである単一の列 (名前) で結合するため、マルチインデックスが必要であることを指定している可能性があります。

データフレームを結合しない階層インデックス作成

ただし、シナリオによっては、階層インデックス作成が必要ない場合もあります。データフレームに共通の列がある場合は、ラムダ関数と functools パッケージを使用して結合プロセスを簡素化できます。以下に例を示します。

import pandas as pd
import functools as ft

dfs = [df1, df2, df3, ..., dfN]

df_final = ft.reduce(lambda left, right: pd.merge(left, right, on='name'), dfs)
ログイン後にコピー

このコード内:

  • dfs はマージするデータフレームを含むリストです。
  • ft.reduce はラムダ関数を適用します。データフレームの各ペアに追加し、「name」列に基づいてそれらをマージします。
  • df_final結果のデータフレームには、各固有の人物のすべての属性が含まれています。

このアプローチは、複雑な階層インデックス スキームを指定することなく、複数のデータフレームをマージするのに便利です。

以上が共通の列に基づいて複数の Pandas DataFrame を効率的にマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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