Используйте Numpy «где» с несколькими условиями, но ничего не делайте, если условие не выполнено - PullRequest
0 голосов
/ 21 апреля 2020

Я был бы очень признателен, если бы вы могли помочь мне с этой задачей с помощью Jupyter Notebook.

1 store = vat['Sum of VAT'].notnull()
2 store1 = vat['Comment'] == "VAT"
3 vat['Comment'] = np.where(vat['External name'] == 'GBTICJE','Reverse charge + IC',vat['Comment'] )

Я использовал код 3 для извлечения строкового значения в столбец «Комментарий» на основе строкового значения ». GBTICJE »в столбце« Внешнее имя »без перезаписи существующих строк в столбце« Комментарий », если условие не было выполнено.

Но как мне интегрировать код 1 и 2 в код 3? Так что я могу сначала отфильтровать фрейм данных на основе двух условий 1 и 2, прежде чем выполнять начальный код 3?

Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 21 апреля 2020

Вот что я предлагаю:

vat.loc[(vat['Sum of VAT'].notnull()) &
        (vat['Comment'] == "VAT") &
        (vat['External name'] == 'GBTICJE'), "Comment"] = 'Reverse charge + IC'
...