複数のデータフレームのマージは、特にデータフレームの数が増えると複雑でイライラする可能性があります。ネストされたマージ関数を使用することは可能ですが、このアプローチは管理できず、エラーが発生しやすくなります。
複数のデータフレームをマージするより洗練された効率的な方法については、次の解決策を検討してください。
import pandas as pd from functools import reduce # Initialize a list of dataframes dfs = [df1, df2, df3] # Merge the dataframes using the reduce function df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
このソリューションは、functools モジュールの Reduce 関数を利用して、データフレームを反復的にマージします。ラムダ関数は、結合に指定された列 ('DATE') とすべての行を保持するための 'outer' マージ メソッドを使用して、マージ操作を定義します。
明確でわかりやすい: このソリューションは、複数のデータフレームをマージするための明確かつ簡潔なアプローチを提供し、複雑なネストされたマージの必要性を排除します。関数。
複数のデータフレームを効果的に処理します: このソリューションは、任意の数のデータフレームを処理できるため、スケーラブルで便利です。
次のことを考慮してください。 dataframes:
df_1: May 19, 2017;1,200.00;0.1% May 18, 2017;1,100.00;0.1% May 17, 2017;1,000.00;0.1% May 15, 2017;1,901.00;0.1% df_2: May 20, 2017;2,200.00;1000000;0.2% May 18, 2017;2,100.00;1590000;0.2% May 16, 2017;2,000.00;1230000;0.2% May 15, 2017;2,902.00;1000000;0.2% df_3: May 21, 2017;3,200.00;2000000;0.3% May 17, 2017;3,100.00;2590000;0.3% May 16, 2017;3,000.00;2230000;0.3% May 15, 2017;3,903.00;2000000;0.3%
提供されたソリューションを使用して、これらをマージできますデータフレーム:
df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
結果:
DATE VALUE1 VALUE2 VALUE3 May 15, 2017; 1,901.00;0.1%; 2,902.00;1000000;0.2%; 3,903.00;2000000;0.3%
以上がPython で複数の DataFrame を効率的にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。