複雑なイテレータを使用せずに、共通の列に基づいて複数の DataFrame を効率的にマージするにはどうすればよいでしょうか?

Linda Hamilton
リリース: 2024-11-21 09:05:11
オリジナル
874 人が閲覧しました

How can you efficiently merge multiple DataFrames based on a common column without complex iterators?

複数のデータフレームのマージ

問題ステートメント

複数のデータフレームのマージは、特にデータフレームが異なる場合には困難な作業になる可能性があります。形状と構造。最も一般的なアプローチには、merge() 関数を繰り返し使用することが含まれますが、これは複雑になり、多数のデータフレームに対して読み取れなくなる可能性があります。

質問

複数のデータフレームをマージするにはどうすればよいですか?再帰や複雑な手段を使用せずに、共通の列に基づいたデータフレームを効率的かつエレガントに作成iterators?

Answer

reduce() 関数は、複数のデータフレームをマージするための再帰の代替手段を提供します。 reduce() 関数は、項目のリストに関数を繰り返し適用して、項目のリストを 1 つの値に減らします。この場合、関数は merge() 関数で、項目のリストはデータフレームのリストです。

import pandas as pd
from functools import reduce

# Load dataframes
df1 = pd.read_csv('dataframe1.csv')
df2 = pd.read_csv('dataframe2.csv')
df3 = pd.read_csv('dataframe3.csv')

# Create a list of dataframes
dataframes = [df1, df2, df3]

# Merge dataframes
df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dataframes)
ログイン後にコピー

説明

reduce()この関数は、関数 pd.merge を最初の引数として、データフレームのリストを 2 番目の引数として呼び出します。 pd.merge() 関数は 2 つのデータフレームをマージし、reduce() 関数は結果をリスト内の次のデータフレームと繰り返しマージし、リストを 1 つのマージされたデータフレームに縮小します。

on='date'引数は、すべてのデータフレームに共通であると想定される「日付」列に基づいてマージを実行することを指定します。 how='outer' パラメーターは、「date」列に対応する値があるかどうかに関係なく、両方のデータフレームのすべての行をマージされたデータフレームに含める必要があることを示します。これにより、同じ日付値を持つすべての行が 1 つの行にマージされます。

Result

df_merged 変数には、個々のデータフレーム。各データフレームの対応する行が「日付」列に基づいて配置されます。この方法は効率的で柔軟で読みやすいため、多数のデータフレームを結合するための理想的なソリューションとなります。

以上が複雑なイテレータを使用せずに、共通の列に基づいて複数の DataFrame を効率的にマージするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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