آموزش جامع متد where در Pandas: فیلتر کردن داده‌ها به سادگی

آموزش جامع متد where در Pandas: فیلتر کردن داده‌ها به سادگی
آموزش جامع متد where در Pandas: فیلتر کردن داده‌ها به سادگی

آموزش جامع متد where در Pandas: فیلتر کردن داده‌ها به سادگی

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

متد where چیست؟

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

نحوه استفاده از متد where

ساختار کلی این متد به شکل زیر است:

DataFrame.where(cond, other=np.nan, *, inplace=False, axis=None, level=None)

این متد یک DataFrame جدید برمی‌گرداند که در آن مقادیر شرطی True حفظ شده و بقیه با مقدار other جایگزین شده‌اند.

پارامترهای کلیدی

  • cond: شرطی که باید بررسی شود. این شرط می‌تواند به صورت آرایه یا DataFrame باشد.
  • other: مقداری که به جای مقادیر شرط False جایگزین می‌شود (پیش‌فرض NaN).
  • inplace: اگر True باشد، تغییرات به صورت inplace روی DataFrame اصلی اعمال می‌شوند.
  • axis: برای اعمال شرط روی سطرها یا ستون‌ها.
  • level: برای کار با MultiIndex‌ها.

پارامترها

cond(شرط اعمالی):هbool Series/DataFrame, array-like, یا callable

این پارامتر هسته اصلی عملکرد where است.شرطی که تعیین می‌کند کدام مقادیر از DataFrame اصلی حفظ شوند.

  • اگر cond مقدار True داشته باشد، مقدار اصلی حفظ می‌شود
  • اگر cond مقدار False داشته باشد، مقدار مربوطه با other جایگزین می‌شود.
  • اگر cond یک تابع (callable) باشد: این تابع روی Series/DataFrame اعمال شده و باید یک Series/DataFrame دودیی (بولی) برگرداند. این تابع نباید مقادیر DataFrame اصلی را تغییر دهد (اما این موضوع توسط pandas بررسی نمی‌شود).

other(مقدار جایگزین): هscalar, Series/DataFrame, یا callable

  • مقادیری که جایگزین مقادیر اصلی می‌شوند، اگر شرط cond = False باشد
  • اگر other یک تابع (callable) باشد: این تابع روی Series/DataFrame اعمال شده و باید یک مقدار scalar یا Series/DataFrame برگرداند. این تابع نیز نباید مقادیر DataFrame اصلی را تغییر دهد (pandas این موضوع را بررسی نمی‌کند). اگر مقدار other مشخص نشود، به طور پیش‌فرض از مقدار NULL استفاده می‌شود:
    • الف) برای نوع داده‌های NumPy، مقدار NaN
    • ب) برای نوع داده‌های گسترشی (مثل Int64 یا Categorical)، مقدار pd.NA

inplace: دودیی(bool), پیش‌فرض: False

  • اگر True باشد، عملیات به صورت inplace روی DataFrame اصلی انجام می‌شود و هیچ DataFrame جدیدی برگردانده نمی‌شود.
  • اگر False باشد، یک DataFrame جدید با تغییرات برگردانده می‌شود.

axis(انتخاب محور): عدد صحیح(int), پیش‌فرض: None

مشخص می‌کند که تراز داده‌ها (alignment) روی کدام محور انجام شود. در DataFrame‌ها:

  • axis=0 برای اعمال عملیات روی سطرها
  • axis=1 برای اعمال عملیات روی ستون‌ها

برای Series این پارامتر استفاده نمی‌شود و به طور پیش‌فرض ۰ است.

level: عدد صحیح (int) , پیش‌فرض: None

در صورت استفاده از MultiIndex (ایندکس چندسطحی)، می‌توان سطح خاصی از ایندکس را برای اعمال شرط مشخص کرد.

چیزی که این تابع برمی‌گرداند:

  • همان نوع داده اصلی (DataFrame یا Series) برگردانده می‌شود، مگر اینکه inplace=True باشد.
  • اگر inplace=True باشد، متد مقدار None بازمی‌گرداند و تغییرات مستقیماً روی DataFrame/Series اعمال می‌شوند.

مثال:

مثال ۱: استفاده ساده از شرط

import pandas as pd
import numpy as np

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

خروجی:

  A    B
  NaN  NaN
  NaN  5.0
  ۳.۰  ۶.۰

مثال ۲: استفاده از other

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
result = df.where(df > 2, other=0)
print(result)

خروجی:

 A  B
 ۰  ۰
 ۰  ۵
 ۳  ۶

مثال ۳: اعمال inplace

import pandas as pd
import numpy as np

df.where(df > 2, other=0, inplace=True)
print(df)

خروجی:

 A  B
 ۰  ۰
 ۰  ۵
 ۳  ۶

مثال ۴: استفاده از شرط و مقدار متغیر در other

import pandas as pd
import numpy as np

result = df.where(df > 2, other=df + 10)
print(result)

خروجی:

  A   B
 ۱۱  ۱۴
 ۱۲   ۵
  ۳   ۶

نکات مهم:

  • کار با مقادیر گمشده: اگر other مشخص نشود، مقادیر False به NaN تبدیل می‌شوند
  • MultiIndex: استفاده از level برای داده‌هایی با ایندکس چندسطحی می‌تواند کاربردی باشد
  • مقایسه با mask: متد mask به صورت برعکس عمل می‌کند، یعنی شرط‌های True را با مقدار other جایگزین می‌کند

تفاوت where با mask

  • متد where مقادیری را که شرط برقرار نیستند تغییر می‌دهد
  • متد mask برعکس عمل می‌کند: مقادیری را که شرط برقرار است تغییر می‌دهد

مثال:

df.mask(df > 2, other=0)

منابع

Pandas

اشتراک گذاری:

آخرین اخبار

دیدگاه‌ها

اشتراک در
اطلاع از
guest
0 Comments
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
دیتانید تو مراحل مختلف تحلیل داده می‌تونه به شما کمک کنه:
  1. امکان‌سنجی خواسته‌ها و تطبیق نیازمندی‌ها
  2. استخراج و تمیز کردن دادگان
  3. طراحی مدل‌های مناسب
  4. آموزش مدل براساس داده‌های به‌دست اومده
  5. استقرار مدل

آخرین مقالات

مقاله ویدیویی

مقالات مرتبط

مقالات مرتبط

پست دوم: چگونه کار می‌کنند؟ (فناوری‌های زیربنایی ماشین‌های خودران)
حمل‌ونقل هوشمند و فناوری‌های نوین

قسمت دوم: چگونه کار می‌کنند؟ (فناوری‌های زیربنایی ماشین‌های خودران)

مقدمه ماشین‌های خودران تنها وسایل نقلیه‌ای با قابلیت حرکت خودکار نیستند؛ بلکه مجموعه‌ای از سیستم‌های هوشمند و پیچیده‌اند که با استفاده از فناوری‌های پیشرفته می‌توانند

ادامه مطلب »