মূল content-এ যাও

Python for AI/Pandas/Lesson 45

Filtering

শর্ত দিয়ে row বাছাই — & আর | দিয়ে একাধিক শর্ত, isin, between, str.contains দিয়ে text খোঁজা, sort_values আর nlargest।

সময়
22 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

NumPy-র boolean mask মনে আছে? Pandas-এ হুবহু একই:

main.py

শর্ত → True/False-এর Series → সেটা দিয়ে index → শুধু True row-গুলো।

কেন দরকার?

  • Data cleaning: অসম্ভব মান (বয়স -5, দাম 0) বাদ দেওয়া
  • Analysis: "Dhaka-র ২৫ বছরের নিচের customer-রা কত খরচ করে?"
  • Error analysis: "model যেগুলো ভুল করেছে, সেগুলো দেখাও"
  • Dataset ভাগ: শুধু নির্দিষ্ট সময় বা অঞ্চলের data দিয়ে model

একাধিক শর্ত

main.py
PythonPandasমানে
and&দুটোই
or|যেকোনো একটা
not~উল্টো

প্রতিটা শর্ত bracket-এ রাখো। df["age"] >= 18 & df["city"] == "Dhaka" ভুল ফলাফল দেয়, কারণ & আগে হিসাব হয়।

দরকারি filter method

main.py
Methodউদাহরণ
isin(list)city এই তালিকার একটা কিনা
between(a, b)a থেকে b (দুই প্রান্ত সহ)
.str.contains(text)text-এর ভেতরে আছে কিনা
.str.startswith / .str.endswithশুরু / শেষ মেলে কিনা

.str দিয়ে পুরো column-এ string method — Python-এর string-এর সব method এভাবে vectorized পাওয়া যায়।

sort_values আর nlargest

main.py

একাধিক column দিয়ে sort — প্রথমে category, একই category-তে দাম অনুযায়ী।

query: পড়তে সহজ বিকল্প

main.py

query-তে সাধারণ and/or লেখা যায়, আর @ দিয়ে বাইরের variable।

Exercise

Exercise

Internship shortlist

+20 XP

students থেকে internship-এর জন্য shortlist বানাও:

  • dept CSE বা EEE
  • cgpa 3.5 বা বেশি

shortlist = শর্ত মানা student-দের নামের list, cgpa অনুযায়ী বেশি থেকে কম সাজানো।

solution.py

Quiz

  1. Q1df[df["age"] > 18 and df["city"] == "Dhaka"] কেন error দেয়?
  2. Q2df["city"].isin(["Dhaka", "Sylhet"]) কী করে?
  3. Q3সবচেয়ে বেশি দামের ৩টা product — সবচেয়ে সরাসরি উপায়?
0/3 answered

Challenge

Challenge

+50 XP

একটা e-commerce site-এর search। search(products, keyword, max_price) function লেখো:

  • নামে keyword আছে এমন product (বড়-ছোট হাতের অক্ষর নির্বিশেষে)
  • দাম max_price বা কম
  • দাম অনুযায়ী কম থেকে বেশি সাজানো
  • Return: শুধু name আর price column-ওয়ালা DataFrame, index 0 থেকে নতুন করে
solution.py

বাস্তবে কোথায় ব্যবহার হয়?

Outlier ধরা — model train করার আগে অস্বাভাবিক মান খুঁজে বের করা। IQR পদ্ধতি, statistics-এর একটা standard কৌশল:

main.py

একটা ৯,৫০,০০০ টাকার salary (হয়তো typo, হয়তো CEO) পুরো গড়টাকে প্রায় তিনগুণ করে দিয়েছে। Outlier ঠিকমতো না সামলালে model-ও এভাবে বিভ্রান্ত হয়।

Interview প্রশ্ন

  • Beginner: Pandas-এ দুটো শর্ত কীভাবে মেলাবে?
  • Intermediate: isin, between, str.contains — কোনটা কখন?
  • Advanced: Outlier সবসময় বাদ দেওয়া কি ঠিক? Fraud detection-এ outlier-এর ভূমিকা কী?

এরপর কী?

Real data-র সবচেয়ে বড় মাথাব্যথা — missing value। কিছু ঘর খালি, model সেগুলো নিতে পারে না। পরের lesson: Missing Data।