фрейм данных удаляет строки на основе значений двух столбцов - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу удалить некоторые строки, содержащие выбросы, но у меня есть другое ограничение: я могу удалить эту строку, только если значение этой строки в столбце A не «Move-UP», «MOVE-DOWN». (Правило удаления выбросов - среднее +/- 3 * стандартное отклонение для столбца B).

набор данных выглядит следующим образом (в реальном наборе данных намного больше строк):

    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, но есть ограничение: никогда не трогайте те строки, которые имеют значения «MOVE-UP» и «MOVE-DOWN» в столбце A.

Может ли кто-нибудь помочь мне здесь?

1 Ответ

0 голосов
/ 06 ноября 2018

Я считаю, что вам нужно отфильтровать строки, которые не содержат значений Move-UP и MOVE-DOWN в столбце A. А также, если выбросы определяются списком, связывающим его с другим условием с isin:

L = [0.587, 1.8]
df1 = df[~df['A'].isin(['Move-UP','MOVE-DOWN']) & df['B'].isin([L])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...