Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menggabungkan Berbilang DataFrames dengan Cekap dalam Python?

Bagaimana untuk Menggabungkan Berbilang DataFrames dengan Cekap dalam Python?

DDD
DDDasal
2024-11-29 13:13:09827semak imbas

How to Efficiently Merge Multiple DataFrames in Python?

Cara Menggabungkan Berbilang Bingkai Data

Isu

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.

Penyelesaian

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.

Faedah

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.

Contoh

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn