首頁  >  文章  >  後端開發  >  如何找到一個資料幀中存在但另一個資料幀中不存在的行(比較 df1 和 df2)?

如何找到一個資料幀中存在但另一個資料幀中不存在的行(比較 df1 和 df2)?

Susan Sarandon
Susan Sarandon原創
2024-10-19 21:07:03577瀏覽

How to Find Rows Present in One Dataframe but Not in Another (Comparing df1 and df2)?

比較資料幀:尋找一個中存在但另一個中不存在的行

比較資料幀以識別差異對於資料品質保證和合併至關重要營運。在本例中,我們有兩個具有特定結構的資料幀(df1 和 df2),需要確定 df2 中存在但 df1 中不存在的行。

最初,嘗試使用 df1 != df2 比較資料幀會導致錯誤。此方法僅適用於具有相同行和列的資料幀。為了找到對稱差異,我們需要不同的方法。

一種方法涉及連接資料幀:

df = pd.concat([df1, df2])
df = df.reset_index(drop=True)

然後,按所有列對連接的資料幀進行分組:

df_gpby = df.groupby(list(df.columns))

接下來,我們透過取得僅存在一行的索引值來識別唯一記錄:

idx = [x[0] for x in df_gpby.groups.values() if len(x) == 1]

使用這些索引,我們可以過濾資料幀以獲得所需的結果:

df.reindex(idx)

此方法根據日期索引和Fruit 欄位的比較提供df2 中存在但df1 中不存在的行。

以上是如何找到一個資料幀中存在但另一個資料幀中不存在的行(比較 df1 和 df2)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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