ویرگول
ورودثبت نام
رضا کشاورز
رضا کشاورزرضا کشاورزم. یک تحلیلگر داده که مغزش همیشه درحال تحلیل جهان پیرامونشه. از تحلیل داده و هوش مصنوعی می نویسم اینجا.
رضا کشاورز
رضا کشاورز
خواندن ۲ دقیقه·۹ ماه پیش

چرا توی پانداز کسی از .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() دوباره کد رو ناخوانا می‌کنه.

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

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

کدپایتونبرنامه نویسیتحلیل داده
۳
۰
رضا کشاورز
رضا کشاورز
رضا کشاورزم. یک تحلیلگر داده که مغزش همیشه درحال تحلیل جهان پیرامونشه. از تحلیل داده و هوش مصنوعی می نویسم اینجا.
روزمرگی های برنامه نویسان 🌿
روزمرگی های برنامه نویسان 🌿
🟢 دوره ۱۲ قدم برنامه نویسی یکی از برترین دوره های آموزشی جهت شروع اصولی برنامه نویسی است و حدود ۵۰۰۰ شرکت کننده با ۹۹ درصد موفقیت داشته است. 🔗 https://avasam.ir/product/12-step-for-be-programmer
شاید از این پست‌ها خوشتان بیاید