Pengenalan:
Menggabungkan bingkai data berdasarkan syarat gabungan dan kekangan tarikh boleh menjadi tugas biasa dalam analisis data. Walaupun panda menyediakan pelbagai pilihan penggabungan, mengoptimumkan prestasi dengan menapis semasa proses penggabungan boleh berfaedah untuk mengelakkan pengendalian bingkai data perantaraan yang besar. Artikel ini membincangkan pendekatan alternatif menggunakan SQL untuk mencapai kecekapan ini.
Penggabungan dengan Penapisan:
Coretan kod yang disediakan menunjukkan penggabungan dua bingkai data A dan B menggunakan pd. fungsi merge() dan kemudiannya menapis keputusan berdasarkan keadaan tarikh. Walau bagaimanapun, pendekatan ini boleh menjadi suboptimum apabila bekerja dengan bingkai data yang besar disebabkan oleh bingkai data perantaraan yang dibuat sebelum penapisan.
SQL sebagai Alternatif:
SQL menyediakan cara yang lebih cekap untuk melaksanakan gabungan ini dengan penapisan dalam pertanyaan itu sendiri. Dengan menyambung ke pangkalan data dalam memori, kami boleh menulis pertanyaan yang melaksanakan penapisan sertaan dan tarikh dalam satu langkah.
Contoh Kod:
Kod berikut menunjukkan pendekatan SQL:
<code class="python">import pandas as pd import sqlite3 # Connect to in-memory database conn = sqlite3.connect(':memory:') # Write dataframes to tables terms.to_sql('terms', conn, index=False) presidents.to_sql('presidents', conn, index=False) war_declarations.to_sql('wars', conn, index=False) # SQL query qry = ''' select start_date PresTermStart, end_date PresTermEnd, wars.date WarStart, presidents.name Pres from terms join wars on date between start_date and end_date join presidents on terms.president_id = presidents.president_id ''' # Read SQL query results into dataframe df = pd.read_sql_query(qry, conn)</code>
Keputusan:
Dfframe data yang terhasil mengandungi baris di mana tarikh dalam A sepadan dengan keadaan tarikh dalam B. Dalam contoh khusus ini , ia mengembalikan presiden dan terma semasa dua peperangan diisytiharkan.
Kelebihan:
Pendekatan ini menawarkan kelebihan berikut:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Penggabungan DataFrame dengan Kekangan Tarikh Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!