Форум сайта python.su
Добрый день. Подскажите, пожалуйста, что не так с функцией. У меня есть данные о доходе клиентов, в этих данных пропуски. Я хочу разделить случаи на те, когда есть данные, и когда нет. Выше пропуски NaN уже перекодированы в нули.
Теперь я мучаю функцию, с помощью которой хочу получить новый столбец, разделяющий клиентов на две категории.
def no_value(row): for row in clients: if row['total_income'] == 0: return 'нет данных' else: return 'есть данные'
clients['income_novalue'] = clients['total_income'].apply(no_value)
Отредактировано jeen (Март 6, 2021 10:55:28)
Прикреплённый файлы:
333.jpg (89,0 KБ)
Офлайн
1. Ничего сказать нельзя, по вашему коду непонятно что такое clients (сами бы его содержимое посмотрели).
2. Заменять NaN на нули очень плохая идея. Ноль валидный доход. Теперь вы не сможете отличить людей у которых нет данных от людей у которых нулевой доход.
Офлайн
Clients - это датасет. Выглядит так - см. плз скриншот в приложении.
Прикреплённый файлы:
222.jpg (50,8 KБ)
Офлайн
jeenВ языке питон нет понятия датасет. Тут не экстрасенсы чтобы угадывать что вы имеете ввиду и какие пакеты используете.
Clients - это датасет.
Офлайн
Все, порядок - работает:
def no_value(clients): total_income = clients['total_income'] for row in clients: if total_income == 0: return 'нет данных' else: return 'есть данные' clients['income_novalue'] = clients.apply(no_value, axis = 1)
Отредактировано jeen (Март 6, 2021 14:29:54)
Офлайн
см. ниже
Отредактировано AD0DE412 (Март 6, 2021 14:44:20)
Офлайн