」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何找到一個資料幀中存在但另一個資料幀中不存在的行(比較 df1 和 df2)?

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

發佈於2024-11-08
瀏覽:415

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)

此方法提供df2 中存在但不存在的行在df1 中基於日期索引和Fruit 列的比較。

版本聲明 本文轉載於:1729343178如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3