Python for AI/Pandas/Lesson 42
DataFrame
Pandas-এর table — dictionary থেকে তৈরি, shape/columns/dtypes দেখা, head আর describe, নতুন column যোগ, rename আর drop।
- সময়
- 22 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
DataFrame হলো একটা table — row আর column। প্রতিটা column আসলে একটা Series, সবগুলো একই index শেয়ার করে।
column -> name dept cgpa
index 0 Rafi CSE 3.4 <- একটা row (একজন student)
| 1 Mim EEE 3.9
v 2 Tanvir CSE 3.7
কেন দরকার?
ML-এর প্রায় সব structured data দেখতে এরকম: প্রতিটা row একটা sample (একজন customer, একটা বাড়ি, একটা transaction), প্রতিটা column একটা feature। scikit-learn সরাসরি DataFrame নেয়।
প্রথম দেখা: dataset-এর পরিচয়
নতুন dataset পেলেই এই কয়টা কাজ:
| Method | কী দেখায় |
|---|---|
df.shape | (row, column) সংখ্যা |
df.columns | column-এর নাম |
df.dtypes | প্রতিটা column-এর type |
df.head(n) / df.tail(n) | প্রথম/শেষ n row |
df.describe() | সংখ্যার column-গুলোর পরিসংখ্যান |
df.info() | type + কতগুলো missing নয় |
Column নিয়ে কাজ
নতুন column যোগ করা মানে শুধু একটা নতুন নামে assign — হিসাব পুরো column-এ একবারে (vectorized)।
rename আর drop
Column-এর নাম ছোট হাতের, space ছাড়া (snake_case) রাখলে পরে কাজ সহজ। Real dataset-এর প্রথম পরিষ্কারের কাজ প্রায়ই এটাই।
খেয়াল করো df = df.rename(...) — Pandas-এর বেশিরভাগ method মূল DataFrame বদলায় না, নতুন একটা return করে।
DataFrame বানানোর আরও উপায়
Dictionary-র list থেকে বানানো খুব common — API response বা JSON থেকে আসা data এভাবেই আসে।
Exercise
Exercise
Marksheet বানাও
data dictionary থেকে df নামে একটা DataFrame বানাও। তারপর:
totalনামে নতুন column —mathআরphysics-এর যোগফলpassedনামে column —total120 বা বেশি হলেTruen_passed— কতজন pass করেছে (একটা int)
Quiz
Challenge
Challenge
Dataset-এর সারাংশ
নতুন একটা dataset হাতে পেলে প্রথম কাজ — এটা কেমন দেখতে? summarize(df) function লেখো যেটা একটা dict return করে:
"rows"— row সংখ্যা"cols"— column সংখ্যা"numeric"— সংখ্যার column-গুলোর নাম (list, df-এর ক্রমে)"means"— প্রতিটা সংখ্যার column-এর গড়, 2 ঘর দশমিকে round (dict)
বাস্তবে কোথায় ব্যবহার হয়?
ML-এর জন্য data প্রস্তুত — feature engineering দিয়ে নতুন column, তারপর model-এর জন্য X আর y:
age আর area_per_room — মূল data-তে ছিল না, আমরা বানালাম। ভালো feature বানানো প্রায়ই নতুন model-এর চেয়ে বেশি উন্নতি আনে।
Interview প্রশ্ন
- Beginner: Series আর DataFrame-এর পার্থক্য কী?
- Intermediate:
df.describe()থেকে data সম্পর্কে কী কী সমস্যা ধরা যায়? (যেমন অস্বাভাবিক min/max, outlier) - Advanced: Pandas 3.0-এর Copy-on-Write কী, আর এটা
inplace=True-এর ব্যবহারকে কীভাবে বদলেছে?
এরপর কী?
Data হাতে লিখে DataFrame বানানো real-world-এ হয় না — data আসে file থেকে। পরের lesson: CSV থেকে Data Load।