মূল content-এ যাও

Python for AI/Pandas/Lesson 41

Series

Pandas-এর প্রথম building block — label-ওয়ালা একটা column। index, vectorized হিসাব, value_counts, আর NumPy array থেকে কোথায় আলাদা।

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

সহজ ভাষায়

Pandas হলো table-আকারের data নিয়ে কাজ করার library — Excel-এর মতো, কিন্তু code দিয়ে আর লাখ লাখ row-এ। এর দুটো মূল জিনিস:

  • Series — একটা column (আজকের lesson)
  • DataFrame — অনেকগুলো Series মিলে একটা table (পরের lesson)
main.py

Series দেখতে NumPy array-এর মতো, কিন্তু প্রতিটা মানের একটা label (index) আছে — temps["Mon"]।

কেন দরকার?

Kaggle থেকে শুরু করে বড় কোম্পানির data team — data load, পরিষ্কার, বিশ্লেষণ, আর model-এ দেওয়ার আগের প্রস্তুতি প্রায় সবসময় Pandas-এ। ML engineer-এর সময়ের বড় অংশ যায় model-এ না, data-তে — আর সেটা Pandas।

Series তৈরি

main.py

Index না দিলে 0, 1, 2... নিজে থেকে বসে। Dictionary থেকে বানালে key-গুলো index হয়।

NumPy-র মতো vectorized

main.py

describe() এক লাইনে count, গড়, std, min, max আর quartile — data-র প্রথম পরিচয়।

Index alignment: Pandas-এর বিশেষ ক্ষমতা

Pandas position না, label মিলিয়ে হিসাব করে:

main.py

ক্রম আলাদা হলেও Dhaka-র সাথে Dhaka-ই যোগ হয়েছে। Rajshahi আর Sylhet একটাতে নেই — তাই NaN (Not a Number, অর্থাৎ missing)। fill_value=0 দিলে নেই মানে ধরে নেয় 0।

value_counts আর unique

Text বা category-র column-এ সবচেয়ে কাজের method:

main.py

dtype

main.py

শেষেরটা খেয়াল করো: একটা missing মান থাকলেই integer column float64 হয়ে যায় — কারণ NaN আসলে একটা float। CSV থেকে data এনে "আমার ID column দশমিক কেন?" — এটাই কারণ।

Pandas 3.0 থেকে text column-এর dtype হলো str (আগের version-এ ছিল object)। পুরনো tutorial-এ object দেখলে বিভ্রান্ত হয়ো না।

Exercise

Exercise

Product-এর দাম

+20 XP

prices একটা Series — index-এ product-এর নাম, মানে দাম।

  • discounted — সব দামে ১০% ছাড়ের পর নতুন দাম (Series)
  • expensive — ছাড়ের পর যেসব product-এর দাম 1000-এর বেশি, তাদের নামের list
solution.py

Quiz

  1. Q1Series আর NumPy array-এর মূল পার্থক্য কী?
  2. Q2pd.Series([10, 20], index=['a', 'b']) + pd.Series([1, 2], index=['b', 'c'])-এর ফলাফল কী?
  3. Q3s.value_counts() কী দেয়?
0/3 answered

Challenge

Challenge

Label distribution

+50 XP

Classification dataset-এ প্রতিটা class কত ভাগ আছে — model বানানোর আগে প্রথম চেক।

label_share(labels, n) function লেখো: labels-এর list নিয়ে সবচেয়ে বেশি আসা nটা label-এর অনুপাত (0 থেকে 1, 2 ঘর দশমিকে round) একটা dict হিসেবে return করবে — বেশি থেকে কম ক্রমে।

solution.py

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

Model train করার আগে class imbalance চেক — challenge-এ যা বানালে, তার real ব্যবহার:

main.py

Fraud detection, রোগ নির্ণয়, spam — বাস্তবের অনেক সমস্যায় এমন imbalance। এখানে accuracy-র বদলে precision/recall দেখতে হয় (Machine Learning path-এ বিস্তারিত)।

Interview প্রশ্ন

  • Beginner: Series কী? Index কী কাজে লাগে?
  • Intermediate: দুটো Series যোগ করলে index না মিললে কী হয়? কেন এটা সুবিধা আবার বিপদও?
  • Advanced: Missing value থাকলে integer column কেন float হয়ে যায়? Pandas-এর nullable Int64 dtype কী সমাধান দেয়?

এরপর কী?

একটা column বুঝলাম। এবার অনেকগুলো column মিলিয়ে পুরো table — পরের lesson: DataFrame।