[英]Find the difference (set difference) between two dataframes in python
我有兩個數據框:df1 和 df2。 我想消除 df1 中所有出現的 df2 行。 基本上,這是集差運算符,但用於數據幀。
我的問題與這個問題非常相似, 但有一個主要變化是 df1 可能根本沒有公共行。 在這種情況下,如果我們連接兩個數據幀然后刪除重復項,它仍然不會消除 df1 中出現的 df2。 事實上,它增加了它。
問題也與此類似,只是我想要對行進行操作。
例子:
Case 1:
df1:
A,B,C,D
E,F,G,H
df2:
E,F,G,H
Then, df1-df2:
A,B,C,D
Case 2:
df1:
A,B,C,D
df2:
E,F,G,H
Then, df1 - df2:
A,B,C,D
簡單地說,我正在尋找一種方法來執行 df1 - df2(如果 df1 中存在,則刪除 df2)。 這應該怎么做?
嘗試:
df1[~df1.isin(df2)]
A,B,C,D
設置差異將在這里起作用,它返回 ar1 中不在 ar2 中的唯一值。
np.setdiff1d(df1, df2)
或者以DataFrame的形式獲取結果,
pd.DataFrame([np.setdiff1d(df1, df2)])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.