根据其他两列中的重复值检查一列中的差异

沙发番茄

我有一个这样的示例数据框。

animal  color  price
rabit   red    10
turtle  green  15
rabit   red    12
turtle  green  15
turtle  green  10
sheep   white  5
sheep   white  5

如果animal 和color 中的值与第1 行和第3 行相同但价格不同,则返回价格不同的行。结果应该是这样的:

animal  color  price
rabit   red    10
rabit   red    12
turtle  green  15
turtle  green  10

谢谢你。

阿克谢·塞加尔

尝试这个 -

确保drop_duplicates()在使用pd.duplicatedwith之前使用第一个keep=False,用于您的预期目的。

out = df.drop_duplicates()
out = out[out.duplicated(subset=['animal','color'], keep=False)]
print(out)
   animal  color  price
0   rabit    red     10
1  turtle  green     15
2   rabit    red     12
4  turtle  green     10

注意!!:如果您drop_duplicates()用作第二步,您会得到如下意外输出。

out = df[df.duplicated(subset=['animal','color'], keep=False)]
out = out.drop_duplicates()
print(out)
   animal  color  price
0   rabit    red     10
1  turtle  green     15
2   rabit    red     12
4  turtle  green     10
5   sheep  white      5

为什么会发生这种情况?

直观地,drop_duplicates()删除基于所有列的df.duplicated(keep=False)重复项,并根据给定的 2 列标记所有重复项。

场景 1:删除所有具有相同 2 列和价格的行,然后保留基于 2 列的重复项 > 这意味着您将留下具有不同价格但重复 2 列的行。

场景 2:保留所有基于 2 列重复的行(在此示例中不会删除任何内容)。然后删除价格相同的重复行。最终与在所有列中删除重复行相同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据其他两列中的值来旋转一列中的行值

如何根据psql中其他列的值删除一列中的重复项

根据R中的其他两列减去一列中的值

R编码如何添加一列并根据其他两列中的值填充它

如何根据多列其他列中的值减去一列中的值?

根据同一列中的其他值将列中的值替换为NaN

如何根据R中其他列的值过滤一列中的值?

根据其他列中的条件对一列中的值求和,并更改值

根据其他列中的值计算一列中唯一实例的数量

在Python中循环:根据其他列中的值修改一列

如何根据另一列中的间隔填充熊猫中其他列的缺失值?

如何根据其他列值对一列中的值进行排序?

如何根据其他 4 列的值对一列中的值求和?

根据不同列中的其他2个值对一列的值求和

根据 SQL Server 中的其他列值推断一列的值

如何检查一列的值位于其他文件中两列的值之间,并在Unix中从列打印相应的值?

根据是否在其他行中重复,在R中使用dplyr添加一列

熊猫如何根据其他列中的值汇总一列的总和

根据Pandas数据框中的其他三列更改一列的值

根据pyspark数据框中的其他列的值聚合一列

在 r 中重复循环,直到一列中的值小于其他几列

根据其他两列中的值创建是/否列

如何根据 R 中的其他两列计算一列?

根据另一列中的重复值过滤一列中的唯一值

对一列进行分组并查找熊猫中其他两列的差的最大(绝对)值

从其他两列替换一列中的NaN值

根据其他列值的组合检查唯一列值

根据其他两列中的值查找值

根据其他列中的值删除重复项