фильтрация на основе нескольких условий в Python - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть df, в котором есть список акций, членство в индексе, рыночная капитализация, рейтинг рыночной капитализации, оборот и рейтинг оборота.

Мне нужно создать еще один столбец под названием «Удалить», который будет удалятьакции, основанные на нескольких условиях.

список условий с использованием & и |

  1. текущее членство в индексе должно равняться DAX и

  2. рейтинг рыночной капитализации должен быть больше 35 или

  3. рейтинг оборота должен быть больше 35

приведенный ниже кодработает, когда членство в индексе = dax и рейтинг рыночной капитализации> 35, но не работает, когда членство в индексе = dax и обороты> 35. Вместо этого он смотрит только, если оборот превышает 35, но не членство в индексе = dax.

с приведенным ниже кодом, мой результат показывает акцию как удаление в недавно созданном столбце «удаления», потому что его рейтинг оборота равен 79, но членство в индексе - MDAX, а не DAX.первое условие должно выполняться, и это не в этом случае.

Может кто-нибудь помочь мне, пожалуйста


df['Deletes'] = np.where((df['Index Membership'] == 'DAX') & (df['MKT Rank'] > 35) | (df['Turnover Rank'] > 35),'delete','')

1 Ответ

3 голосов
/ 20 апреля 2019

Я думаю, что здесь можно добавить еще (), например:

df['Deletes'] = np.where((df['Index Membership'] == 'DAX') & 
                         ((df['MKT Rank'] > 35) | (df['Turnover Rank'] > 35)),'delete','')

, поскольку приоритет оператора .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...