#python #pandas
Вопрос:
Я создаю новый столбец с именем lead_actor_actress_known, значения которого являются логическими в зависимости от того, имеет ли значение значение во 2-м столбце lead_actor_actress или нет. Если есть значение(Имя участников), заполните 1-й столбец с помощью True, если значения нет, верните False
Ошибка атрибута: объект ‘str’ не имеет атрибута ‘isnull’
Мой код выдает ошибку выше.
df['lead_actor_actress_known'] = df['lead_actor_actress'].apply(lambda x: True if x.isnull() else False)
Чего мне не хватает?
Комментарии:
1. Серия
df['lead_actor_actress']
, по-видимому, представляет собой строку типа «Мерил Стрип», поэтому у нее нет атрибута isnull (). Попробуйтеdf['lead_actor_actress'].isnull()
применить ко всей серии.2. Вывод из комментария @HenryEcker состоит в том, чтобы попытаться не использовать
.apply()
, а вместо этого использовать собственные функции pandas. Вы избавите себя от большой боли в будущем.
Ответ №1:
Комментарий Генри Экера содержит ответ на этот вопрос, который я для удобства воспроизводю в разделе ответов. Замените применение .apply()
метода кодом df['lead_actor_actress_known'] = df['lead_actor_actress'].isna()
.
Здесь важно знать, что df['lead_actor_actress'].isna()
возвращает «логическую маску» (ряд истинных и ложных значений), и это именно то, что вы просите назначить переменной lead_actor_actress
.