Membandingkan DataFrames dan Visualisasi Perbezaan dengan Side-by-Side Comparison
Memandangkan dua bingkai data Pandas, tugasnya adalah untuk mengenal pasti dan mempamerkan perubahan antara mereka dalam format yang mesra pengguna. Matlamatnya ialah untuk mengeluarkan jadual HTML yang menyerlahkan baris yang telah berubah secara visual, memaparkan nilai asal dan nilai yang dikemas kini.
Mengenal pasti Perubahan Baris
Untuk mencapai matlamat ini, adalah perlu untuk menentukan baris yang telah berubah. Ini boleh dicapai dengan menggunakan operasi ne (tidak sama), yang mengembalikan topeng boolean untuk semua elemen yang nilai yang sepadan dalam dua bingkai data berbeza.
<code class="python">ne = (df1 != df2).any(1)</code>
Mencari Entri Ubahsuai
Setelah baris dengan perubahan telah dikenal pasti, entri khusus yang telah diubah suai boleh dikesan menggunakan fungsi stack(). Dengan menapis hasil bertindan berdasarkan topeng boolean, ia menjadi mungkin untuk mengekstrak entri yang telah berubah.
<code class="python">changed = (df1 != df2).stack()[ne_stacked] changed.index.names = ['id', 'col']</code>
Mengekstrak Nilai Berubah
Seterusnya, yang asal dan nilai yang dikemas kini boleh diekstrak menggunakan fungsi where. Ini membolehkan penciptaan DataFrame yang meringkaskan perubahan, dengan lajur "dari" dan "kepada" masing-masing mewakili nilai asal dan yang diubah suai.
<code class="python">difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]</code>
Menjana Jadual HTML
Akhir sekali, perubahan yang diekstrak boleh disusun ke dalam jadual HTML untuk menggambarkan perbezaan antara dua bingkai data. Jadual ini boleh dipaparkan dengan mana-mana enjin pemaparan HTML, seperti kaedah to_html Pandas, untuk menyediakan perbandingan sebelah menyebelah yang mesra pengguna.
<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index).to_html()</code>
Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Pandas DataFrames dan Visualisasikan Perbezaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!