Membanding dan Memaparkan Perbezaan Bingkai Data Dengan Berkesan
Pengenalan
Mengenalpasti dan memahami perbezaan antara dua kerangka data adalah tugas biasa dalam analisis data. Sama ada membandingkan data sejarah dengan aliran semasa atau menjejaki perubahan dalam pangkalan data, keupayaan untuk menyerlahkan perubahan ini dengan tepat adalah penting.
Pernyataan Masalah
Andaikan kita mempunyai dua bingkai data mengandungi maklumat senarai pelajar dari dua bulan berbeza: "StudentRoster Jan-1" dan "StudentRoster Jan-2." Matlamat kami adalah untuk mencipta jadual HTML yang memaparkan dengan jelas perubahan antara dua bingkai data ini, menunjukkan nilai baharu dan lama untuk setiap baris.
Penyelesaian
Mengenalpasti Baris Berubah
Langkah pertama ialah menentukan baris mana yang sebenarnya telah berubah. Kita boleh menggunakan fungsi any() untuk menyemak setiap baris untuk sebarang perbezaan:
<code class="python">import pandas as pd import numpy as np ne = (df1 != df2).any(1)</code>
Ini akan mengembalikan Siri Boolean dengan True menunjukkan baris yang diubah.
Mengekstrak Nilai Berubah
Seterusnya, kita perlu mengekstrak nilai berubah sebenar. Kami menggunakan kaedah .stack() untuk mengubah bingkai data menjadi satu lajur, kemudian tapis lajur ini untuk nilai yang diubah:
<code class="python">ne_stacked = (df1 != df2).stack() changed = ne_stacked[ne_stacked] changed.index.names = ['id', 'col']</code>
Ini akan memberi kami nama indeks dan lajur bagi nilai yang diubah.
Mengekstrak Nilai Terdahulu dan Baharu
Menggunakan indeks daripada nilai yang diubah, kita boleh mengekstrak nilai sebelumnya dan baharu untuk setiap entri yang diubah:
<code class="python">difference_locations = np.where(df1 != df2) changed_from = df1.values[difference_locations] changed_to = df2.values[difference_locations]</code>
Membuat Jadual HTML
Akhir sekali, kita boleh mencipta jadual HTML dengan menggabungkan nilai yang diekstrak:
<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)</code>
Bingkai data ini mengandungi dua lajur: "dari" dan "ke", yang memaparkan nilai asal dan baharu untuk setiap entri yang diubah. Indeks kerangka data mengenal pasti baris dan lajur tempat perubahan berlaku.
Dengan memaparkan nilai yang diubah dan nilai sebelumnya dan baharu bersebelahan, jadual HTML ini memberikan gambaran keseluruhan yang jelas dan komprehensif tentang perubahan antara dua bingkai data.
Atas ialah kandungan terperinci Cara Membanding dan Memaparkan Perbezaan Bingkai Data Dengan Berkesan Menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!