Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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 - Fatal编程技术网

Python 删除不一致数据时基于两列删除重复项

Python 删除不一致数据时基于两列删除重复项,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有这样一个熊猫数据框: a b c 0 1 1 1 1 1 1 0 2 2 4 1 3 3 5 0 4 3 5 0 其中前两列('a'和'b')是ID,而最后一列('c')是验证(0=neg,1=pos)。我确实知道如何根据前两列的值删除重复数据,但是在这种情况下,我还希望消除不一致的数据,即重复数据验证为正数和负数。例如,前两行重复但不一致,因此我应该删除整个记录,而后两行都重复且一致,因此我保留其中一条记录。预期结果应为: a b

我有这样一个熊猫数据框:

   a  b  c
0  1  1  1
1  1  1  0
2  2  4  1    
3  3  5  0
4  3  5  0
其中前两列('a'和'b')是ID,而最后一列('c')是验证(0=neg,1=pos)。我确实知道如何根据前两列的值删除重复数据,但是在这种情况下,我还希望消除不一致的数据,即重复数据验证为正数和负数。例如,前两行重复但不一致,因此我应该删除整个记录,而后两行都重复且一致,因此我保留其中一条记录。预期结果应为:

   a  b  c
0  2  4  1
1  3  5  0
真正的数据帧每个组可以有两个以上的副本,并且 如您所见,索引也已更改。谢谢。

首先使用筛选行以获得唯一值组,然后:

详细信息

print (df.groupby(['a','b'])['c'].transform('nunique'))
0    2
1    2
2    1
3    1
4    1
Name: c, dtype: int64

谢谢耶兹雷尔,你的回答近乎完美,只是遗漏了我要求的关于索引的最后一部分,但这确实是一件非常简单的事情。我刚刚在末尾添加了.reset_index(drop=True)@Simosini-解决方案有问题吗?
print (df.groupby(['a','b'])['c'].transform('nunique'))
0    2
1    2
2    1
3    1
4    1
Name: c, dtype: int64