#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 минут, пока я не смогу принять ваш ответ. Может быть, вы можете уточнить, что делает маска?