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