Вивчення функцій lambda
Свайпніть щоб показати меню
Функція lambda — це невелика анонімна функція, яка визначається за допомогою ключового слова lambda. На відміну від звичайних функцій, що визначаються через def, функція lambda не має імені та призначена для короткої, одноразової логіки.
Синтаксис:
lambda arguments: expression
Функція приймає arguments і повертає результат виразу expression. Кілька простих прикладів:
12345double = lambda x: x * 2 print(double(5)) # Returns 10 is_even = lambda x: x % 2 == 0 print(is_even(4)) # Returns True
Використання lambda з iloc[]
У pandas iloc[] зазвичай приймає позиції на основі цілих чисел. Однак можна також передати функцію lambda – у цьому випадку x посилається на сам DataFrame, а x.index повертає значення індексу рядків:
data.iloc[lambda x: x.index < 5]
Цей код повертає перші п’ять рядків (індекси від 0 до 4). Ось що робить кожна частина:
lambda x: визначає анонімну функцію, деx— це DataFrame;x.index: отримує значення індексу рядків;x.index < 5: умова фільтрації; вибираються лише ті рядки, індекс яких менший за5.
Результатом є булевий масив, який iloc[] використовує для фільтрації рядків.
Фільтрація за парністю індексу
Поширений випадок використання — розділення набору даних за парними та непарними індексами. Оператор остачі % повертає залишок від ділення:
123456789101112import pandas as pd # Data import data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/IMDb_Data_final.csv') # Rows with even indices (0, 2, 4, ...) even = data.iloc[lambda x: x.index % 2 == 0] print(even.head()) # Rows with odd indices (1, 3, 5, ...) odd = data.iloc[lambda x: x.index % 2 != 0] print(odd.head())
x.index % 2 == 0 є True, коли індекс ділиться на 2 без остачі (парний), і False в іншому випадку.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат