Bagaimanakah anda boleh menggabungkan berbilang DataFrames dengan cekap berdasarkan lajur biasa tanpa iterator yang kompleks?

Linda Hamilton
Lepaskan: 2024-11-21 09:05:11
asal
889 orang telah melayarinya

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

Menggabungkan Berbilang Bingkai Data

Pernyataan Masalah

Menggabungkan berbilang bingkai data boleh menjadi tugas yang sukar, terutamanya apabila bingkai data mempunyai pelbagai bentuk dan struktur. Pendekatan yang paling biasa melibatkan penggunaan fungsi merge() secara berulang, yang boleh menjadi rumit dan tidak boleh dibaca untuk sebilangan besar bingkai data.

Soalan

Bagaimana seseorang boleh menggabungkan berbilang bingkai data berdasarkan lajur biasa dengan cekap dan elegan tanpa menggunakan rekursi atau kompleks iterator?

Jawapan

Fungsi reduce() menyediakan alternatif kepada rekursi untuk menggabungkan berbilang bingkai data. Fungsi reduce() secara berulang menggunakan fungsi pada senarai item, mengurangkannya kepada satu nilai. Dalam kes ini, fungsi ialah fungsi merge() dan senarai item ialah senarai bingkai data.

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)
Salin selepas log masuk

Penjelasan

Reduce() fungsi dipanggil dengan fungsi pd.merge sebagai argumen pertama dan senarai bingkai data sebagai yang kedua. Fungsi pd.merge() menggabungkan dua bingkai data dan fungsi reduce() secara berulang menggabungkan hasil dengan bingkai data seterusnya dalam senarai, mengurangkan senarai kepada satu bingkai data gabungan.

The on='date' hujah menentukan bahawa gabungan harus dilakukan berdasarkan lajur 'tarikh', yang diandaikan sebagai perkara biasa kepada semua bingkai data. Parameter how='outer' menunjukkan bahawa semua baris daripada kedua-dua bingkai data harus disertakan dalam bingkai data yang digabungkan, tidak kira sama ada mereka mempunyai nilai yang sepadan untuk lajur 'tarikh'. Ini memastikan bahawa semua baris dengan nilai tarikh yang sama digabungkan menjadi satu baris.

Hasil

Pembolehubah df_merged kini mengandungi bingkai data yang digabungkan dengan semua data daripada bingkai data individu, dengan baris yang sepadan daripada setiap bingkai data dijajarkan berdasarkan lajur 'tarikh'. Kaedah ini cekap, fleksibel dan mudah dibaca, menjadikannya penyelesaian ideal untuk menggabungkan sejumlah besar bingkai data.

Atas ialah kandungan terperinci Bagaimanakah anda boleh menggabungkan berbilang DataFrames dengan cekap berdasarkan lajur biasa tanpa iterator yang kompleks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan