Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找一个数据帧是否是另一个数据帧的子集,同时忽略索引_Python_Pandas_Dataframe - Fatal编程技术网

Python 查找一个数据帧是否是另一个数据帧的子集,同时忽略索引

Python 查找一个数据帧是否是另一个数据帧的子集,同时忽略索引,python,pandas,dataframe,Python,Pandas,Dataframe,尝试查找pandas df是否是不同pandas df的子集 当两个数据帧的索引匹配时,我可以比较它们,但在我的例子中,行具有不同的索引 ex=pd.DataFrame({“col1”:[“香蕉”、“番茄”、“苹果”], “col2”:[“猫”、“狗”、“kangoo”], “col3”:[“电视”、“电话”、“ps4”]}) ex2=pd.DataFrame({“col1”:[“番茄”,“苹果”], “col2”:[“dog”,“kangoo”], “col3”:[“电话”,“ps4”]})

尝试查找pandas df是否是不同pandas df的子集

当两个数据帧的索引匹配时,我可以比较它们,但在我的例子中,行具有不同的索引

ex=pd.DataFrame({“col1”:[“香蕉”、“番茄”、“苹果”],
“col2”:[“猫”、“狗”、“kangoo”],
“col3”:[“电视”、“电话”、“ps4”]})
ex2=pd.DataFrame({“col1”:[“番茄”,“苹果”],
“col2”:[“dog”,“kangoo”],
“col3”:[“电话”,“ps4”]})
ex2.isin(ex).all().all()
>>>假的

我希望上述结果匹配并为真,目前它只查找相同的索引,我如何覆盖它。

可能的解决方案是使用
合并所有列(无参数
on
),然后使用
isin
和子集:

print (ex2.merge(ex).isin(ex2))
   col1  col2  col3
0  True  True  True
1  True  True  True

print (ex2.merge(ex).isin(ex2).all().all())
True
另一个想法是比较多索引:

i1 = ex2.set_index(ex2.columns.tolist()).index
i2 = ex.set_index(ex.columns.tolist()).index

print (i1.isin(i2).all())
True

是的,我想OP需要逐行检查。