В языке Python, как и во многих других языках программирования, есть лямбда-функции — компактный способ записи функций, содержащих одно выражение.
Лямбды анонимные и бывают полезны в случаях, когда нужна небольшая одноразовая функция. Их часто применяют в функциональном программировании — когда сама функция или её результат используются в качестве аргумента функции более высокого порядка.
Распространённая на практике задача — применение операции к каждому элементу списка с помощью функции map(). Здесь как раз удобно использовать лямбду. Например, выражение list(map(lambda x: x**2, 1, 2, 3)) последовательно возведёт каждый элемент исходного списка в квадрат и положит их в новый список.
Как лямбда-функции могут пригодиться в анализе данных? Допустим, у вас есть таблица с данными о количестве покупок, совершённых каждым клиентом в текущем месяце. Вам необходимо рассчитать долю клиентов, сделавших за это время не менее пяти покупок.
Для решения этой задачи можно воспользоваться библиотекой pandas, вызвать у столбца метод .apply() и подать ему на вход в качестве аргумента короткую лямбда-функцию с условной конструкцией, применив в конце метод .mean() для расчёта среднего значения:
df'purchases'.apply(lambda x: 1 if x >= 5 else 0).mean()
Такая запись применит лямбда-функцию к каждому элементу колонки «purchases» и преобразует её в серию, состоящую из нулей и единиц, где единице будет соответствовать количество покупок, большее или равное 5. Среднее значение нового массива будет соответствовать искомой доле клиентов, совершивших необходимое количество покупок.
Совет: лямбда-функциями не стоит злоупотреблять. Если есть ощущение, что выражение будет слишком громоздким и сложным для восприятия, лучше написать обычную функцию.
#полезное@karpovcourses