簡體   English   中英

如何將數據框與python中熊貓中另一個數據框的子集相交進行比較?

[英]How to compare a dataframe to a subset intersection of another dataframe in pandas in python?

我在python中有以下數據框:

數據框1

             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

數據框2

             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.

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