首頁 >後端開發 >Python教學 >如何比較 Pandas DataFrame 並視覺化差異?

如何比較 Pandas DataFrame 並視覺化差異?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-22 20:45:19991瀏覽

How to Compare Pandas DataFrames and Visualize Differences?

比較數據幀並通過並排比較可視化差異

給定兩個Pandas 數據幀,任務是識別並展示更改它們之間以使用者友好的格式。目標是輸出一個 HTML 表格,直觀地突出顯示已更改的行,同時顯示原始值和更新值。

識別行更改

要實現此目的,有必要確定已更改的行。這可以透過利用 ne(不等於)操作來完成,該操作為兩個資料幀中相應值不同的所有元素傳回一個布林遮罩。

<code class="python">ne = (df1 != df2).any(1)</code>

定位修改的條目

一旦確定了發生更改的行,就可以使用 stack() 函數找到已修改的特定條目。透過基於布林遮罩過濾堆疊結果,可以提取已變更的條目。

<code class="python">changed = (df1 != df2).stack()[ne_stacked]
changed.index.names = ['id', 'col']</code>

提取更改的值

接下來,原始值可以使用 where 函數提取更新的值。這允許創建一個總結更改的 DataFrame,其中“from”和“to”列分別代表原始值和修改後的值。

<code class="python">difference_locations = np.where(df1 != df2)
changed_from = df1.values[difference_locations]
changed_to = df2.values[difference_locations]</code>

產生 HTML 表

最後,擷取的變更可以組織到 HTML 表中,以視覺化兩個資料幀之間的差異。該表可以使用任何 HTML 渲染引擎來渲染,例如 Pandas 的 to_html 方法,以提供用戶友好的並排比較。

<code class="python">pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index).to_html()</code>

以上是如何比較 Pandas DataFrame 並視覺化差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn