我想删除一些包含离群值的行,但是我还有另一个约束,就是只有在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”的行。
有人可以帮我吗?
答案 0 :(得分:1)
我认为您需要过滤掉列Move-UP
中不包含值MOVE-DOWN
和A
的行。并且如果离群值是通过使用isin
将其与另一个条件进行链式链接而定义的:
L = [0.587, 1.8]
df1 = df[~df['A'].isin(['Move-UP','MOVE-DOWN']) & df['B'].isin([L])]