মূল content-এ যাও

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 শেয়ার করে।

main.py
         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 পেলেই এই কয়টা কাজ:

main.py
Methodকী দেখায়
df.shape(row, column) সংখ্যা
df.columnscolumn-এর নাম
df.dtypesপ্রতিটা column-এর type
df.head(n) / df.tail(n)প্রথম/শেষ n row
df.describe()সংখ্যার column-গুলোর পরিসংখ্যান
df.info()type + কতগুলো missing নয়

Column নিয়ে কাজ

main.py

নতুন column যোগ করা মানে শুধু একটা নতুন নামে assign — হিসাব পুরো column-এ একবারে (vectorized)।

rename আর drop

main.py

Column-এর নাম ছোট হাতের, space ছাড়া (snake_case) রাখলে পরে কাজ সহজ। Real dataset-এর প্রথম পরিষ্কারের কাজ প্রায়ই এটাই।

খেয়াল করো df = df.rename(...) — Pandas-এর বেশিরভাগ method মূল DataFrame বদলায় না, নতুন একটা return করে।

DataFrame বানানোর আরও উপায়

main.py

Dictionary-র list থেকে বানানো খুব common — API response বা JSON থেকে আসা data এভাবেই আসে।

Exercise

Exercise

Marksheet বানাও

+20 XP

data dictionary থেকে df নামে একটা DataFrame বানাও। তারপর:

  • total নামে নতুন column — math আর physics-এর যোগফল
  • passed নামে column — total 120 বা বেশি হলে True
  • n_passed — কতজন pass করেছে (একটা int)
solution.py

Quiz

  1. Q1df.shape যদি (1000, 8) হয়, তাহলে কী বোঝায়?
  2. Q2df["price"] আর df[["price"]]-এর পার্থক্য কী?
  3. Q3df.drop(columns=["id"]) চালানোর পর df-এ কি id column আছে?
0/3 answered

Challenge

Challenge

Dataset-এর সারাংশ

+50 XP

নতুন একটা dataset হাতে পেলে প্রথম কাজ — এটা কেমন দেখতে? summarize(df) function লেখো যেটা একটা dict return করে:

  • "rows" — row সংখ্যা
  • "cols" — column সংখ্যা
  • "numeric" — সংখ্যার column-গুলোর নাম (list, df-এর ক্রমে)
  • "means" — প্রতিটা সংখ্যার column-এর গড়, 2 ঘর দশমিকে round (dict)
solution.py

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

ML-এর জন্য data প্রস্তুত — feature engineering দিয়ে নতুন column, তারপর model-এর জন্য X আর y:

main.py

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।