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)
このコード内:
このアプローチは、複雑な階層インデックス スキームを指定することなく、複数のデータフレームをマージするのに便利です。
以上が共通の列に基づいて複数の Pandas DataFrame を効率的にマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。