Как выбрать определенные записи и применить к столбцу функцию?

У меня есть некий датасет, например:

  Marked       City.      Marked
1   0          New York    1
2   1         California   0 

Хочу выбрать записи из фрейма данных, где Marked равен 1, и применить некоторую функцию к строке City. Фрейм данных большой (более 1 миллиона записей), а функция для применения затратная по ресурсам, поэтому вариант использования условия в apply для всего фрейма данных не подходит, поскольку мне все равно нужно пройти 1 миллион записей. Выбор строк во фрейме данных где Marked 1 снижает кол-во до 300 т. Соответсвенно, применить функцию к ним будет эффективнее, чем ко всему фрейму.

mask = test.Marked == 1
test.loc[mask, 'City'] = test.loc[mask].apply(exctract_actual_place_of_residence, axis=1)

но получаю ошибку:

'Series' objects are mutable, thus they cannot be hashed


Ответы (1 шт):

Автор решения: MaxU

попробуйте так:

test.loc[mask, 'City'] = test.loc[mask, 'City'].apply(exctract_actual_place_of_residence, axis=1)
→ Ссылка