Заполнение nan увеличивающейся последовательностью в Pandas

#python #pandas

Вопрос:

Я пытаюсь перевести этот R-код на pandas:

data1 = data1 %>% mutate(id = ifelse(is.na(id), cumsum(is.na(id)), id))

Что он делает — он ищет отсутствующие идентификаторы и присваивает им уникальный номер, который увеличивается (от 1 до …).

Я пытался делать:

df.assign(id = lambda x: x.isnull().cumsum() if x.isnull() else x) но я продолжаю получать ошибки.

Ответ №1:

Использовать Series.mask с указанным именем столбцов:

 df.assign(id = lambda x: x['id'].mask(x['id'].isnull(), x['id'].isnull().cumsum()))
 

Комментарии:

1. Ошибка синтаксиса: неожиданный EOF при синтаксическом анализе

2. @MaverickMeerkat — отсутствует последнее )

3. Спасибо за быстрый ответ! Мне нужно подождать 6 минут, пока я не смогу принять ваш ответ. Может быть, вы можете уточнить, что делает маска?