我想删除一些包含离群值的行,但是我还有另一个约束,就是只有在A列中该行的值不是'Move-UP','MOVE-DOWN'的情况下,我才能删除该行。 (离群值去除规则是B列的平均值+/- 3 *标准偏差)。

数据集看起来像这样(实际数据集中有很多行):

    A                B
1  OK              0.34
2  OK              0.587
3  MOVE-UP         1.8
4  OK              -2.3
5  MOVE-DOWN       0.4
6  OK              0.35


假设第二行是一个离群值,可以删除它,因为A中的值不是'Move-UP','MOVE-DOWN',但是如果第三行是离群值,则我不能删除它,因为A中的值正在上移。

简而言之,我需要从B列中删除异常值,但有一个约束条件:切勿触摸A列中具有“ MOVE-UP”和“ MOVE-DOWN”值的行。

有人可以帮我吗?

最佳答案

我认为您需要过滤出列Move-UP中不包含值MOVE-DOWNA的行。而且,如果异常值是通过使用isin的另一个条件将其与其他条件进行链式连接来定义的:

L = [0.587, 1.8]
df1 = df[~df['A'].isin(['Move-UP','MOVE-DOWN']) & df['B'].isin([L])]

关于python - 数据框基于两列的值删除行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53166587/

10-14 17:36