Menggabungkan berbilang bingkai data boleh menjadi rumit dan mengecewakan, terutamanya apabila bilangan bingkai data meningkat. Walaupun mungkin untuk menggunakan fungsi cantum bersarang, pendekatan ini menjadi tidak terurus dan terdedah kepada ralat.
Untuk cara yang lebih elegan dan cekap untuk menggabungkan berbilang bingkai data, pertimbangkan penyelesaian berikut:
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)
Penyelesaian ini menggunakan fungsi pengurangan daripada modul functools untuk menggabungkan bingkai data secara berulang. Fungsi lambda mentakrifkan operasi cantum, menggunakan lajur yang ditentukan untuk bergabung ('DATE') dan kaedah cantum 'luar' untuk mengekalkan semua baris.
Bersih dan Boleh Difahami : Penyelesaian ini menyediakan pendekatan yang jelas dan ringkas untuk menggabungkan berbilang bingkai data, menghapuskan keperluan untuk kompleks fungsi gabungan bersarang.
Kendalikan Berbilang Bingkai Data dengan Berkesan: Penyelesaian ini boleh mengendalikan sebarang bilangan bingkai data, menjadikannya berskala dan mudah.
Pertimbangkan rangka data berikut:
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%
Menggunakan penyelesaian yang disediakan, kita boleh gabungkan bingkai data ini:
df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
Hasil:
DATE VALUE1 VALUE2 VALUE3 May 15, 2017; 1,901.00;0.1%; 2,902.00;1000000;0.2%; 3,903.00;2000000;0.3%
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang DataFrames dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!