比較數據幀並通過並排比較可視化差異
給定兩個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中文網其他相關文章!