1. ホーム
  2. パイソン

[解決済み】pandas 三元結合で複数のデータフレームをカラムで結合する。

2022-04-04 07:54:06

質問

3つのCSVファイルを持っています。それぞれ、最初の列が人物の(文字列)名で、各データフレーム内の他の列はすべてその人物の属性です。

3つのCSVドキュメントを結合して、1つのCSVを作成するには、どうすればよいですか。

join() 関数はマルチインデックスが必要であることを指定していますが、階層的インデックススキームと単一インデックスに基づくジョインがどのように関係するのか混乱しています。

どのように解決するのですか?

インポートを想定しています。

import pandas as pd

ジョン・ガルトの答え は基本的に reduce の操作になります。 もしデータフレームが数個以上ある場合は、このようにリストに入れます(リスト内包やループなどで生成されます)。

dfs = [df0, df1, df2, dfN]

のように、何らかの共通のカラムを持っていると仮定します。 name の例では、次のようにします。

df_final = reduce(lambda left,right: pd.merge(left,right,on='name'), dfs)

そうすれば、マージしたいデータフレームの数がいくつであっても、あなたのコードは動作するはずです。

2016年8月1日編集 : Python 3をお使いの方へ。 reduce に移動しました。 functools . ですから、この関数を使うには、まずそのモジュールをインポートする必要があります。

from functools import reduce