«unique_receivers» - это фрейм данных Pandas со столбцами для уникальных получателей транзакций, суммами и пустым столбцом для категорий, которые я хочу заполнить функцией.
unique_receivers
Receiver Amount Category
144 SALE -18.93
141 TACO BELL -19.20
78 MCDONALDS -19.65
104 EXPRESS -20.00
154 SHOP -24.00
Я хочу заполнить столбец "Категория" указанного выше фрейма данных на основе совпадений его столбца "Получатель" с условиями поиска в другом фрейме данных, "category_searchterms".
"category_searchterms" содержит категории в качестве имен столбцов, а столбец каждой категории имеет соответствующие условия поиска.
Вот пример этого кадра данных:
categories
Groceries Electricity Fastfood
0 SHOP ELCOMPANY MCDONALDS
1 MARKET POWER SUBWAY
2 SALE PIZZA
Я хочу просмотреть каждую строку столбца «Получатель» «unique_receivers», найти совпадение в кадре данных «категории», взять имя соответствующего столбца и назначить его для категории «Первый файл данных» "колонка.
Я пытаюсь сделать это с помощью этой функции:
def add_category(searchterm):
unique_receivers["Category"] = (category_searchterms == searchterm).any().idxmax()
А потом назовите это:
unique_receivers.apply(add_category(unique_receivers["Receiver"]), axis=1)
Проблема:
TypeError: ("'NoneType' object is not callable", 'occurred at index 144')
Индекс 144 - это первая строка в "unique_receivers". Если я сейчас вызову фрейм данных, каждая строка будет заполнена первой категорией:
unique_receivers
Receiver Amount Category
144 SALE -18.93 Groceries
141 TACO BELL -19.20 Groceries
78 MCDONALDS -19.65 Groceries
104 EXPRESS -20.00 Groceries
154 SHOP -24.00 Groceries
Как я могу заставить реально подходящую категорию отображаться в столбце "Категория" каждой строки? Спасибо.