Home › Lectures › Data Analysis

🧹 ডেটা ক্লিনিং ও EDA · Data Cleaning & EDA

বাস্তব ডেটা অগোছালো—পরিষ্কার করাই ৮০% কাজ।

Real data is messy; cleaning is 80% of the job.

📅 ২. ডেটা বিশ্লেষণ⏳ ~2 সপ্তাহ📘 6 টপিক🧩 18 সাব-টপিক🎬 0 ভিডিও💻 রানযোগ্য কোড

🎯 যা শিখবেন / Outcomes

Detect outliers, fix missing values, profile data

🧰 টুলস / Tools

pandas, ydata-profiling

🏁 প্রজেক্ট / Capstone

Clean and EDA a messy survey dataset

📌 পূর্বশর্ত / Prerequisites

🐼 Pandas 📊 Statistics

📅

সাপ্তাহিক পরিকল্পনা · Weekly plan

~২ ঘণ্টা/দিন ধরে
1

Data Cleaning Process

Turn messy data into usable data.
Beginner
📘 বাংলা: অগোছালো ডেটা ব্যবহারযোগ্য করা।
🌐 English: Turn messy data into usable data.

💡 ভুল ডেটায় সেরা মডেলও ভুল ফল দেয় (garbage in, garbage out)।

  1. 1
    পরিদর্শন: shape, info, describe, value_counts, প্রতিটি কলামের অনন্য মান
  2. 2
    সমস্যা তালিকা: ভুল টাইপ, বানান ভিন্নতা ("dhaka ", "Dhaka"), অসম্ভব মান (বয়স ২০০), ডুপ্লিকেট, মিসিং
  3. 3
    পরিষ্কার: strip/title, to_numeric(errors="coerce"), নিয়মভিত্তিক সংশোধন
  4. 4
    যাচাই ও ডকুমেন্টেশন: আগে-পরে সারি সংখ্যা ও প্রতিটি সিদ্ধান্ত লিখে রাখুন
ধাপপরিদর্শন, পরিষ্কার, যাচাই
সাধারণ সমস্যাভুল টাইপ, বানান ভিন্নতা, ফাঁকা ঘর
ডকুমেন্টেশনপ্রতিটি পরিবর্তন লিখে রাখা
2

Outlier Detection

Find anomalies with IQR and z-scores.
Beginner
📘 বাংলা: IQR ও Z-score দিয়ে ব্যতিক্রম শনাক্ত।
🌐 English: Find anomalies with IQR and z-scores.

💡 আউটলায়ার গড় ও মডেলকে বিকৃত করে—আবার কখনো সেটাই সবচেয়ে গুরুত্বপূর্ণ তথ্য।

  1. 1
    দৃশ্যমান করুন: বক্সপ্লট ও হিস্টোগ্রাম
  2. 2
    IQR নিয়ম: Q1 − 1.5×IQR এর নিচে বা Q3 + 1.5×IQR এর উপরে
  3. 3
    Z-score: |z| > 3 (প্রায় নরমাল ডেটায়)
  4. 4
    সিদ্ধান্ত: ডেটা-এন্ট্রি ভুল → ঠিক/বাদ; আসল চরম ঘটনা → রাখুন, অথবা ক্যাপ/লগ রূপান্তর
IQR পদ্ধতিQ1−1.5IQR, Q3+1.5IQR
Z-score|z|>3
সিদ্ধান্তবাদ, ক্যাপ, নাকি আসল ঘটনা
3

Duplicate Handling

Remove duplicate records.
Intermediate
📘 বাংলা: ডুপ্লিকেট রেকর্ড সরানো।
🌐 English: Remove duplicate records.

💡 ডুপ্লিকেট রেকর্ড গণনা ফুলিয়ে দেয় ও মডেলে লিকেজ ঘটায়।

  1. 1
    সম্পূর্ণ ডুপ্লিকেট: df.duplicated().sum()
  2. 2
    নির্দিষ্ট কলামে: df.duplicated(subset=["patient_id","date"])
  3. 3
    কোনটা রাখবেন: drop_duplicates(keep="first"/"last") — সর্বশেষ আপডেট রাখতে sort করে last
  4. 4
    আংশিক মিল (নামের বানান ভিন্ন): fuzzy matching (rapidfuzz)
শনাক্তdf.duplicated()
বাদdrop_duplicates(subset=...)
আংশিক ডুপ্লিকেটফাজি ম্যাচিং
4

Exploratory Data Analysis

Explore patterns and relationships.
Intermediate
📘 বাংলা: ডেটার প্যাটার্ন ও সম্পর্ক অন্বেষণ।
🌐 English: Explore patterns and relationships.

💡 মডেলের আগে ডেটা বোঝা—প্যাটার্ন, সমস্যা ও নতুন প্রশ্ন আবিষ্কার।

  1. 1
    ৫–১০টি প্রশ্ন লিখুন (কোন জেলায় বেশি? কোন মাসে?)
  2. 2
    প্রতিটি কলামের বিতরণ ও মিসিং দেখুন
  3. 3
    সম্পর্ক: কোরিলেশন, গ্রুপভিত্তিক তুলনা, সময় প্রবণতা
  4. 4
    প্রতিটি অন্তর্দৃষ্টি চার্টসহ এক লাইনে লিখুন ও পরবর্তী পদক্ষেপ ঠিক করুন
প্রশ্ন দিয়ে শুরুকী জানতে চাই
সারাংশ ও ভিজ্যুয়ালdescribe, hist, corr
অনুসন্ধান লিপিবদ্ধinsight তালিকা
5

Univariate Bivariate Analysis

Analyse one and two variables.
Advanced
📘 বাংলা: এক ও দুই ভেরিয়েবল বিশ্লেষণ।
🌐 English: Analyse one and two variables.

💡 প্রতিটি ভেরিয়েবল আলাদাভাবে ও জোড়ায় বুঝলে সম্পর্ক ও লুকানো সমস্যা স্পষ্ট হয়।

  1. 1
    ইউনিভেরিয়েট সংখ্যা: হিস্টোগ্রাম, বক্সপ্লট, describe
  2. 2
    ইউনিভেরিয়েট ক্যাটাগরি: value_counts, বার চার্ট
  3. 3
    বাইভেরিয়েট: সংখ্যা×সংখ্যা স্ক্যাটার/কোরিলেশন, সংখ্যা×ক্যাটাগরি বক্সপ্লট, ক্যাটাগরি×ক্যাটাগরি crosstab
  4. 4
    মাল্টিভেরিয়েট: pairplot, hue দিয়ে তৃতীয় ভেরিয়েবল
ইউনিভেরিয়েটবিতরণ, হিস্টোগ্রাম
বাইভেরিয়েটস্ক্যাটার, গ্রুপ তুলনা
মাল্টিভেরিয়েটpairplot, হিটম্যাপ
6

Data Profiling

Automated data-quality reports.
Advanced
📘 বাংলা: ডেটার মান যাচাইয়ের রিপোর্ট।
🌐 English: Automated data-quality reports.

💡 বড় বা নতুন ডেটাসেটের মান দ্রুত ও স্বয়ংক্রিয়ভাবে যাচাই।

  1. 1
    pip install ydata-profiling; ProfileReport(df).to_file("report.html")
  2. 2
    রিপোর্টে দেখুন: মিসিং, ডুপ্লিকেট, উচ্চ কোরিলেশন, ধ্রুবক কলাম
  3. 3
    ডেটা মানের মাত্রা: সম্পূর্ণতা, সঠিকতা, সামঞ্জস্য, সময়োপযোগিতা, অনন্যতা
  4. 4
    পাইপলাইনে নিয়ম যুক্ত করুন (Great Expectations/pandera): "বয়স ০–১২০"
ydata-profilingএক লাইনে রিপোর্ট
ডেটা কোয়ালিটি মাত্রাসম্পূর্ণতা, সঠিকতা, সামঞ্জস্য
Great Expectationsস্বয়ংক্রিয় যাচাই
💻

হাতে-কলমে কোড · Hands-on code

Run চাপুন — পাইথন আপনার ব্রাউজারেই চলবে (Ctrl+Enter)
import pandas as pd, numpy as np
df=pd.DataFrame({"age":[25,27,np.nan,29,200,26,27],"city":["Dhaka","dhaka ","Sylhet","Sylhet","Dhaka",None,"dhaka "]})
df["city"]=df.city.str.strip().str.title()
q1,q3=df.age.quantile([.25,.75]); iqr=q3-q1
out=(df.age<q1-1.5*iqr)|(df.age>q3+1.5*iqr); print("Outliers:\n",df[out])
df.loc[out,"age"]=np.nan; df["age"]=df.age.fillna(df.age.median())
print(df.drop_duplicates()); print("Missing:\n",df.isna().sum())
📝

অনুশীলন · Practice tasks

  1. একটি অগোছালো জরিপ ডেটা পরিষ্কারের চেকলিস্ট তৈরি করুন
  2. IQR ও Z-score দুই পদ্ধতিতে আউটলায়ার তুলনা
  3. ১০টি insight সহ একটি EDA রিপোর্ট লিখুন
  4. ক্যাপস্টোন: Clean and EDA a messy survey dataset
❓

কুইজ · Quick quiz

1. IQR নিয়মে উপরের সীমা?

2. ডুপ্লিকেট সরাতে?

🎬

ভিডিও লাইব্রেরি · Videos

সাইটের ভেতরে ফ্লোটিং প্লেয়ারে চলবে
এই শাখার ভিডিও এখনো সংরক্ষিত হয়নি। যেকোনো টপিক পেজ খুললে ভিডিও স্বয়ংক্রিয়ভাবে খুঁজে MySQL-এ সংরক্ষিত হবে (API key থাকলে)।

📺 Reference channels

🔗

সংযুক্ত বিষয় · Connected

← আগের শাখা📑 Excel & BIপরের শাখা →🛠️ Feature Engineering
🎬 Video