Привет, подписчики AI in Progress! Сегодня разберём, как с помощью lambda-функций в pandas создавать новые признаки (фичи) для ваших данных. Это must-know для всех, кто занимается анализом данных или машинным обучением!
Что такое lambda❓
Это короткие анонимные функции в Python, которые можно писать прямо "на лету". В pandas они идеальны для кастомной обработки данных.
Пример:
import pandas as pd
data = pd.DataFrame({
'product': ['apple', 'banana'],
'price': [1.5, 2.0],
'quantity': [10, 15]
})
Хотим добавить колонку total_cost (цена × количество)? Легко:
data['total_cost'] = data.apply(lambda x: x['price'] * x['quantity'], axis=1)
Результат: Картинка 1
А если усложнить?
Добавим скидку: 10% если количество > 12, иначе 0%.
data['discount'] = data['quantity'].apply(lambda x: 0.1 if x > 12 else 0.0)
И итоговую стоимость:
data['final_cost'] = data.apply(lambda x: x['total_cost'] * (1 - x['discount']), axis=1)
Результат: Картинка 2
Lambda-функции позволяют:
✔️ Работать со строками (например, lambda x: x['product'][:3].upper()).
✔️ Писать сложные условия (if-elif-else).
✔️ Комбинировать столбцы на лету.
Совет:
Для простых операций используйте векторные вычисления (например, data['price'] * data['quantity']) — они быстрее. А lambda — для гибкости и сложной логики.
*Что такое axis в pandas❓
axis — это параметр, который указывает, вдоль какой оси (направления) в таблице (DataFrame) применять операцию. В pandas данные организованы в виде таблицы с двумя измерениями:
📌Строки (rows) — это горизонтальные линии данных.
📌Столбцы (columns) — это вертикальные колонки с признаками.
Параметр axis говорит pandas, работать ли со строками или со столбцами:
axis=0 — операция идёт вдоль строк (по вертикали, вниз по столбцу). Это значение по умолчанию.
axis=1 — операция идёт вдоль столбцов (по горизонтали, по строке).
#AI #DataScience #Python #Pandas #MachineLearning #FeatureEngineering #Coding #АнализДанных

