چرا توی پانداز کسی از .query() استفاده نمی‌کنه؟

این میخوای دیتات رو با دو تا شرط، فیلتر کنی. از کدوم این راه‌ها استفاده می‌کنی؟

# Without .query()
result = df[(df["age"] > 18) & (df[df["city"] == "Tehran"])]
# With .query()
result = df.query("age > 18 and city == 'Tehran'")

معمولا اولی، مگه نه؟ ولی خب متد query() توی پانداز میتونه به نوشتن کد خوانا‌تر کمک کنه. نوشتنش رو هم راحت‌تر می‌کنه. چشم‌نوازتر هم هست. دیگه چی می‌خوای؟

خیلی ساده: کوئری چیکار می‌کنه؟

با استفاده از این متد، میتونیم شرط‌هایی رو که برای فیلتر کردن داده داریم، مشابه همون سینتکسی که توی SQL دیده می‌شه، روی دیتافریم اعمال کنیم:

df.query("name = 'Reza'")

و اگر منطق پیچیده‌تری داشتیم، با استفاده از عملگرهای منطقی مختلف، از جمله and و or با هم ترکیب کنیم:

df.query("name = 'Reza' and age > 23")

اگر توی اسم یک ستون، فاصله یا علائم خاص دیگه وجود داشت چی؟

df.query(total sales > 100")

اگر نیاز بود توی فیلتری که داریم، از یک متغیر دیگه توی همون نوت بوک/کد استفاده کنیم، چه کنیم؟

threshold = 5
df.query("col > @threshold")

محدودیت‌های متد query() چیا هستن؟

اگر می‌خوایم یه فیلتر پیچیده رو اعمال کنیم، مثلا این مورد:

mask = (df["col"] > 5) & (df["city"].str.startswith("T")) 
df = df[mask]

استفاده از query() دیگه جزو گزینه‌هامون نیست. این متد هرچند که کار رو خیلی وقتها راحت‌تر می‌کنه، اما با خودش محدودیت‌هایی هم میاره.

کجا این، کجا اون؟

سوالی که پیش میاده اینه که بچسبیم به همون روش قدیمی که کاملتره از نظر کاربرد، اما ناخوانا‌تره؟ نه لزوما. توی این مواقع بهتره از query() استفاده کنیم:

  • می‌خوایم شرط‌های ساده اما پرتعدادی رو اعمال کنیم.

  • توی نوت‌بوک/EDAهایی که میخوایم سریع یه سری چیز رو بررسی کنیم.

توی این موارد بهتره که از این روش استفاده نکنیم:

  • اسامی ستون‌های دیتافریم تر و تمیز نیستن و کاراکتر خاص زیاد دارن.

  • کدی رو داریم توسعه می‌دیم که برای محیط پروداکشن قراره استفاده بشه، نه توی نوت‌بوک و .EDA

  • منطق کد پیچیده‌ست و استفاده از query() دوباره کد رو ناخوانا می‌کنه.

اینجا چه خبره؟

من رضا ام و هر از گاهی مطالب مرتبط با پایتون و تحلیل‌داده منتشر می‌کنم. اینجا منو دنبال کن تا بعدی‌ها رو از دست ندی.

باکیفیت ترین دوره آموزش برنامه نویسی چیست ؟

⭐⭐⭐⭐⭐ دوره ی آموزش دوازده قدم برنامه نویسی مهندس سام نیک زاد با کسب امتیاز بالاترین کیفیت دوره ی آموزشی بعنوان با کیفیت دوره انتخاب شده است برای مشاهده کلیک کنید

ثبت نام دوره با تخفیف از ویرگول