Как выбрать определенные записи и применить к столбцу функцию?
У меня есть некий датасет, например:
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)