Как заменить все те же значения группы в столбце (фрейме данных) в соответствии с другим столбцом без l oop? - PullRequest
1 голос
/ 26 февраля 2020

Я пытаюсь заменить все те же значения в группе значений на 0, если в другом столбце, соответствующем этой группе, есть 1.

Вот пример вывода, который я хочу, если в столбце Y есть 1, я хочу, чтобы вся группа, состоящая из единиц во входном столбце, была равна 0. Для проблем со скоростью c я не хочу использовать l oop, пересекающих каждое значение столбца ( при условии, что мой столбец может иметь тысячи значений).

The result I would like

Большое спасибо!

1 Ответ

1 голос
/ 26 февраля 2020

Использование:

df['output']=(df['Y'].ne(1)        
                     .groupby(df['input'].ne(df['input'].shift()).cumsum())
                     .transform('all')
                     .mul(df['input']))

или

((~df['Y'].eq(1)
          .groupby(df['input'].ne(df['input'].shift()).cumsum())
          .transform('any')).mul(df['input']))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...