簡體   English   中英

在python中找到兩個數據幀之間的差異(設置差異)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM