قسمت نهم – استفاده از lambda در پانداس

در پانداس، lambda به عنوان توابع ناشناس برای انجام عملیات ساده و سریع روی داده‌ها بسیار مفید است. این توابع معمولاً در ترکیب با متدهای apply, applymap, و map استفاده می‌شوند. در ادامه، مثال‌های متنوعی از استفاده‌های lambda در پانداس آورده شده است.

  1. استفاده از lambda برای اعمال عملیات ریاضی ساده روی ستون

در این مثال، می‌خواهیم هر مقدار از ستون را دو برابر کنیم:

import pandas as pd

# ایجاد یک DataFrame نمونه
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})

# استفاده از lambda برای دو برابر کردن هر مقدار
df['A_doubled'] = df['A'].apply(lambda x: x * 2)

print(df)

A  A_doubled
۰  ۱          ۲
۱  ۲          ۴
۲  ۳          ۶
۳  ۴          ۸
۴  ۵         ۱۰

۲.استفاده از lambda برای اعمال شرط روی ستون

اگر بخواهیم یک شرط روی ستون اعمال کنیم، می‌توانیم از lambda استفاده کنیم. به عنوان مثال، اگر مقدار ستون بزرگتر از ۲ بود، ۱ قرار دهیم و در غیر این صورت ۰:

import pandas as pd

# ایجاد یک DataFrame نمونه
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})

df['A_condition'] = df['A'].apply(lambda x: 1 if x > 2 else 0)

print(df)
   A  A_condition
۰  ۱            ۰
۱  ۲            ۰
۲  ۳            ۱
۳  ۴            ۱
۴  ۵            ۱

۳.استفاده از lambda برای ترکیب ستون‌ها در یک سطر

فرض کنید دو ستون داریم و می‌خواهیم مقادیر هر سطر را جمع کنیم:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# استفاده از lambda برای جمع مقادیر هر سطر
df['Sum'] = df.apply(lambda row: row['A'] + row['B'], axis=1)

print(df)

 A  B  Sum
۰  ۱  ۴    ۵
۱  ۲  ۵    ۷
۲  ۳  ۶    ۹

۴.استفاده از lambda برای فرمت‌دهی رشته‌ها

فرض کنید ستونی از رشته‌ها داریم و می‌خواهیم همه حروف آن‌ها را به حروف بزرگ تبدیل کنیم:

import pandas as pd

df = pd.DataFrame({'Names': ['alice', 'bob', 'charlie']})

# تبدیل حروف به حروف بزرگ با lambda
df['Uppercase'] = df['Names'].apply(lambda x: x.upper())

print(df)

     Names Uppercase
۰    alice     ALICE
۱      bob       BOB
۲  charlie   CHARLIE

۵.استفاده از lambda برای اعمال عملیات شرطی پیچیده

در اینجا، بر اساس مقدار ستون‌ها، مقدار دیگری را در یک ستون جدید قرار می‌دهیم. اگر A بزرگتر از ۲ و B کوچکتر از ۶ باشد، مقدار Yes و در غیر این صورت No می‌نویسیم:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})


df['Condition'] = df.apply(lambda row: 'Yes' if row['A'] > 2 and row['B'] < 6 else 'No', axis=1)

print(df)

  A  B Condition
۰  ۱  ۴        No
۱  ۲  ۵        No
۲  ۳  ۶        No

۶.استفاده از lambda برای پردازش داده‌های عددی خاص

می‌توانیم یک شرط خاص ایجاد کنیم که مثلاً اعداد زوج را به خودشان و اعداد فرد را به مربعشان تبدیل کند:

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})


df['Processed'] = df['A'].apply(lambda x: x if x % 2 == 0 else x**2)

print(df)

   A  B  Processed
۰  ۱  ۴          ۱
۱  ۲  ۵          ۲
۲  ۳  ۶          ۹

۷.استفاده از lambda برای محاسبه طول لیست یا رشته در هر سلول

در این مثال، ستونی داریم که شامل لیست‌هاست و می‌خواهیم طول هر لیست را محاسبه کنیم:

import pandas as pd
df = pd.DataFrame({'Lists': [[1, 2, 3], [4, 5], [6, 7, 8, 9]]})

# محاسبه طول هر لیست با lambda
df['Length'] = df['Lists'].apply(lambda x: len(x))
print(df)

          Lists  Length
۰     [۱, ۲, ۳]       ۳
۱        [۴, ۵]       ۲
۲  [۶, ۷, ۸, ۹]       ۴

۸.استفاده از lambda برای جایگزینی مقادیر خاص

اگر بخواهیم مقدار خاصی را در ستون با مقدار دیگری جایگزین کنیم، می‌توانیم از lambda استفاده کنیم. به عنوان مثال، همه مقادیر ۰ را با NaN جایگزین می‌کنیم:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [0, 2, 3], 'B': [4, 0, 6]})

# جایگزینی ۰ با NaN
df = df.applymap(lambda x: np.nan if x == 0 else x)

print(df)

  A    B
۰  NaN  4.0
۱  ۲.۰  NaN
۲  ۳.۰  ۶.۰

lambda در پانداس یک ابزار قدرتمند است که به شما اجازه می‌دهد تا توابع ساده و سریع را روی داده‌ها اعمال کنید. با استفاده از این توابع می‌توانید عملیات‌های متنوعی مانند فرمت‌دهی، اعمال شرط، جایگزینی مقادیر خاص و بسیاری دیگر را پیاده‌سازی کنید.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *