我想删除一些包含离群值的行,但是我还有另一个约束,就是只有在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-DOWN
和A
的行。而且,如果异常值是通过使用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/