Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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_Python 3.x_Pandas_Dataframe_Python 3.6 - Fatal编程技术网

Python 如何获得两列中值相同且与某个条件匹配的行,以及另外两列中值不同的行

Python 如何获得两列中值相同且与某个条件匹配的行,以及另外两列中值不同的行,python,python-3.x,pandas,dataframe,python-3.6,Python,Python 3.x,Pandas,Dataframe,Python 3.6,我有一个数据框,看起来像下面的示例: A B C D E 1 foo one 0 1 0 2 foo one 1 2 1 .......... 103 foo two 2 3 1 54 foo two 3 4 1 .......... 25 bar three 4 15 0 96

我有一个数据框,看起来像下面的示例:

          A      B     C   D  E 
    1    foo    one    0   1  0
    2    foo    one    1   2  1
    ..........
    103  foo    two    2   3  1
    54   foo    two    3   4  1
    ..........
    25   bar    three  4  15  0
    96   bar    three  5  16  1
    ..........
    67   bar    four   6  17  0
    111  bar    five   7  18  1
我的预期产出:

          A      B     C   D  E 
    1    foo    one    0   1  0
    2    foo    one    1   2  1
    ..........
    25   bar    three  4  15  0
    96   bar    three  5  16  1
    ..........
说明:
(这是两个相互连接的数据帧,列E标识特定行来自哪个集合,
0
表示“set_0”,而
1
表示“set_1”
。我现在想查看两个数据帧中所有列的值相同的行,除了两列。)

在索引为1和2的行中,对于A列和B列,对于set_1和set_0,我有相同的值,但是在C和D中有不同的值。因此,这些是我想要查看的列。在索引为103和54的行中,A列和B列的行确实匹配,但它们来自同一个集合。所以,我不想要这些行。在索引为25和96的行中,我在A列和B列中有相同的值,分别是set_1和set_0。所以,我想要这些行。索引为67和111的行在A列和B列中有不同的值,但属于不同的集合,所以我不想要这些行

我已经尝试了
groupby
drop\u duplicates
,但是我无法得到我想要查询属于不同数据集的行的部分,这些行由列E的0和1表示。

如何做到这一点?

如果可能的话,测试各组在
A,B
列中是否有两个不同的唯一值
E
列使用:

df = df[df.groupby(['A','B'])['E'].transform('nunique').eq(2)]

.eq(2)
做什么?它是干什么用的?@NaveenKumar-如果有两个唯一的值,它会进行比较,这里是
0,1