[英]How to subtract one dataframe from subset intersection of another dataframe in pandas python?
[英]How to compare a dataframe to a subset intersection of another dataframe in pandas in python?
我在python中有以下數據框:
1 2 3 4 5
dog dog 0 0 0 0 0
fox 0 0 0 0 0
jumps 0 0 0 0 0
over 0 0 0 0 0
the 0 0 0 0 0
fox dog 0 0 0 0 0
fox 0 0 0 0 0
jumps 0 0 0 0 0
over 0 0 0 0 0
the 0 0 0 0 0
jumps dog 0 0 0 0 0
fox 0 0 0 0 0
jumps 0 0 0 0 0
over 0 0 0 0 0
the 0 0 0 0 0
over dog 0 0 0 0 0
fox 0 0 0 0 0
jumps 0 0 0 0 0
over 0 0 0 0 0
the 0 0 0 0 0
the dog 0 0 0 0 0
fox 0 0 0 0 0
jumps 0 0 0 0 0
over 0 0 0 0 0
the 0 0 0 0 0
1 2 4 5
dog dog 0 0 0 0
fox 0 0 0 0
jumps 0 0 0 0
the 0 0 0 0
horse 0 0 0 0
fox dog 0 0 0 0
fox 0 0 0 0
over 0 0 0 0
the 0 0 0 0
cat 0 0 0 0
您可以看到dataframe2包含dataframe1的多索引,但它也包含其他的多索引,例如horse和cat。 數據框2也不包含數據框1的所有列,因為您會看到它未包含列3。
我想比較這兩個數據幀,如果兩個數據幀之間任何常見的first-> second(multi)索引的值也彼此匹配,則函數返回True,否則返回False。
我可以手動查看每個值來進行迭代,但這會增加函數的時間復雜度。 有沒有人知道pandas是否提供了一種內置的方法,還是我需要自己構造一個函數。 如果是這樣,您能指出我正確的方向嗎? 任何建議都將受到高度贊賞。 謝謝。
IIUC,可以使用eq
:
df1.eq(df2)
輸出:
1 2 3 4 5
dog dog True True False True True
fox True True False True True
horse False False False False False
jumps True True False True True
over False False False False False
the True True False True True
fox cat False False False False False
dog True True False True True
fox True True False True True
jumps True True False True True
over False False False False False
the True True False True True
jumps dog False False False False False
fox False False False False False
jumps False False False False False
over False False False False False
the False False False False False
over dog False False False False False
fox False False False False False
jumps False False False False False
over False False False False False
the False False False False False
the dog False False False False False
fox False False False False False
jumps False False False False False
over False False False False False
the False False False False False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.