Использование лямбды с условием в цепочке пандPython

Программы на Python
Anonymous
Использование лямбды с условием в цепочке панд

Сообщение Anonymous »

У меня есть этот набор данных:

Код: Выделить всё

thedf = pd.DataFrame({'a':[10,20,0],'b':[9,16,15]})
thedf
a   b
0   10  9
1   20  16
2   0   15
И я хочу создать новый столбец, используя назначение в цепочке панд. Чтобы избежать деления на ноль, я поместил условие внутри лямбды. Я попробовал этот код:

Код: Выделить всё

thedf.assign(division = lambda x: x['b']/x['a'] if x['a'] != 0 else 0)
Но возвращается ошибка:

Код: Выделить всё

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Ожидаемый результат:

Код: Выделить всё

    a   b   division
0   10  9   0.9
1   20  16  0.8
2   0   15  0
Пожалуйста, этот вопрос связан с цепочкой методов в pandas, и я ожидаю ответа с помощью метода Assign, потому что я использую цепочку методов для очистки данных более сложных наборов данных.
п>

Подробнее здесь: https://stackoverflow.com/questions/787 ... ndas-chain

Вернуться в «Python»