首頁 >後端開發 >Python教學 >如何辨識一個 Pandas DataFrame 中存在但另一個中不存在的行?

如何辨識一個 Pandas DataFrame 中存在但另一個中不存在的行?

DDD
DDD原創
2024-12-14 08:20:15403瀏覽

How to Identify Rows Present in One Pandas DataFrame but Absent in Another?

識別DataFrame 之間不同的行

問題陳述

給定兩個具有相交行的Pandas 資料幀(df1 和df2),任務是隔離df1中不存在的行df2.

為了解決這個問題,我們可以從df1 到df2 執行左連接,確保消除df2 中的重複項,從而確保df1 的每一行僅與df2 的一行連接df2.

df_all = df1.merge(df2.drop_duplicates(), on=['col1', 'col2'], how='left', indicator=True)

此左連接建立一個額外的欄位_merge指示起源

為了過濾df1 獨有的行,我們應用布林條件:

df_filtered = df_all[df_all['_merge'] == 'left_only']

不正確的解

某些解在檢查每個值時出錯列獨立而不是考慮行的存在。例如,此解決方案:

(~df1.col1.isin(common.col1)) & (~df1.col2.isin(common.col2))

傳回不正確的結果,因為它無法捕獲值為 [3, 10] 的行,而該行通常不存在:

0    False
1    False
2    False
3     True
4     True
5    False
dtype: bool

以上是如何辨識一個 Pandas DataFrame 中存在但另一個中不存在的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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