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

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

DDD
發布: 2024-12-14 08:20:15
原創
329 人瀏覽過

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.

1

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

登入後複製

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

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

1

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

登入後複製

不正確的解

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

1

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

登入後複製

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

1

2

3

4

5

6

7

0    False

1    False

2    False

3     True

4     True

5    False

dtype: bool

登入後複製

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板