如何比較兩個資料幀並根據特定列提取差異?

Patricia Arquette
發布: 2024-10-19 21:14:02
原創
344 人瀏覽過

How to Compare Two Dataframes and Extract Differences Based on Specific Columns?

比較兩個資料幀並識別差異

在您的場景中,您有兩個資料幀df1 和df2,具有相同的結構和行索引。您的目標是透過比較日期和水果值來確定哪些行存在於 df2 而不是 df1。

直接比較

使用 df1 != df2 的方法不合適,因為它需要相同標記的資料幀。刪除日期索引也無法解決問題。

串聯和分組

要找到差異,您可以將資料幀串聯成單一資料幀df:

<code class="python">import pandas as pd

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)</code>
登入後複製

按df 的所有列進行分組以識別唯一記錄:

<code class="python">df_gpby = df.groupby(list(df.columns))</code>
登入後複製

過濾唯一記錄

接下來,擷取唯一記錄的索引,即群組大小為1 的行:

<code class="python">idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]</code>
登入後複製

最後,您可以使用這些索引來過濾連接的資料幀,以僅獲取df2 獨有的行:

<code class="python">df.reindex(idx)</code>
登入後複製

這將傳回一個包含所需差異的資料框:

         Date   Fruit   Num   Color
9  2013-11-25  Orange   8.6  Orange
8  2013-11-25   Apple  22.1     Red
登入後複製

以上是如何比較兩個資料幀並根據特定列提取差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!