列に基づいて Pandas データフレームで 3 方向結合を実行する
異種のデータセットを操作する場合、それらを結合して包括的なビューを取得すると、重要であること。 Python の pandas ライブラリでは、join() 関数は、共通のインデックスに基づいて複数のデータフレームを結合する強力な方法を提供します。
質問:
あなたは 3 つの CSV ファイルを所有しています。それぞれに最初の列として人物名が含まれ、残りの列としてさまざまな属性が含まれます。目標は、これらのファイルを 1 つの CSV に「結合」し、各行が一意の人物とそのすべての属性を表すようにすることです。
最初、join() 関数はマルチインデックスの必要性を暗示します。ただし、単一のインデックスに基づいて結合しようとすると、混乱が生じます。
答え:
目的の 3 方向結合を実現するには、関数ツールを使用できます。 reduce 関数。データフレームに対する順次のリダクション操作を容易にします。その方法は次のとおりです。
import functools as ft dfs = [df0, df1, df2, ..., dfN] # List of dataframes df_final = ft.reduce(lambda left, right: pd.merge(left, right, on='name'), dfs)
このアプローチでは、共通の列 (この場合は「name」など) に基づいて任意の数のデータフレームを結合できます。 reduce() 関数は、pandas merge() 関数をリスト内のデータフレームに繰り返し適用し、マージされたすべての属性データを含む df_final という単一のデータフレームを生成します。
以上が単一列に基づいて Pandas DataFrame の 3 方向結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。