ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
ဒီ lesson က lesson 1 ထက် တစ်ဆင့်တက်ပြီး၊ condition အများကြီးနဲ့ ဖစ်တာတွေ၊ missing value ရှိတဲ့ real-world data ကို ရှင်းလင်းခြင်း၊ column အသစ်တွေ တွက်ချက်ခြင်း၊ group ခွဲပြီး summarize လုပ်ခြင်း၊ table နှစ်ခု merge လုပ်ခြင်း စတဲ့ skill တွေကို တစ်ခုတည်း data flow ထဲမှာ ပေါင်းစပ် အသုံးချကြည့်ဖို့ ရည်ရွယ်ပါတယ်။ Teaching content အသစ်မဟုတ်ဘဲ conditional-selection, handling-missing, operations, groupby, merging သင်ခန်းစာတွေမှာ ရှင်းပြထားခဲ့တဲ့ concept တွေကိုပဲ ပြန်အသုံးချရမှာ ဖြစ်ပါတယ်။ Task တွေက တစ်ခုပြီးမှ နောက်တစ်ခု အခြေခံ ဖြစ်နေတာမို့ အစီအစဉ်အတိုင်း လိုက်ဖြေဖို့ အကြံပြုပါတယ်။
လေ့ကျင့်ခန်းများ
Task 1: Product, Category, Price, Qty column ပါတဲ့ DataFrame တစ်ခုမှာ Price column ရဲ့ တချို့ value တွေကို NaN အဖြစ် ထားပြီး၊ isna().sum() နဲ့ missing count စစ်ပါ၊ ပြီးရင် fillna() နဲ့ column mean ကိုသုံးပြီး ဖြည့်ပါ။ Task 2: Category == "Drink" ဖြစ်ပြီး Qty > 2 ဖြစ်တဲ့ row တွေကို & operator သုံးပြီး conditional selection ဖြင့် filter လုပ်ပါ။ Task 3: Total column အသစ် (Price * Qty) တစ်ခု ဖန်တီးပြီး groupby("Category") နဲ့ Category တစ်ခုချင်းစီရဲ့ Total sum ကို တွက်ပါ။ Task 4: Category နဲ့ Supplier name ပါတဲ့ table အသစ်တစ်ခု ဆောက်ပြီး merge() သုံးပြီး original DataFrame နဲ့ Category column အပေါ် base ထား ပေါင်းကြည့်ပါ (how="left" သုံးကြည့်ပါ)။
Code နမူနာ
import pandas as pd
import numpy as np
data = {
"Product": ["Tea", "Coffee", "Juice", "Cake", "Water"],
"Category": ["Drink", "Drink", "Drink", "Food", "Drink"],
"Price": [1200, 1800, np.nan, 2500, 700],
"Qty": [3, 2, 5, 1, 4]
}
df = pd.DataFrame(data)
# Task 1: missing data
# TODO: df["Price"].isna().sum()
# TODO: df["Price"] = df["Price"].fillna(df["Price"].mean())
# Task 2: multi-condition filter
# TODO: df[(df["Category"] == "Drink") & (df["Qty"] > 2)]
# Task 3: new column + groupby
# TODO: df["Total"] = df["Price"] * df["Qty"]
# TODO: df.groupby("Category")["Total"].sum()
# Task 4: merge
suppliers = pd.DataFrame({
"Category": ["Drink", "Food"],
"Supplier": ["ABC Beverage", "XYZ Bakery"]
})
# TODO: pd.merge(df, suppliers, on="Category", how="left")Missing value မရှိတော့တဲ့ clean DataFrame တစ်ခု၊ filter လုပ်ထားတဲ့ Drink row များ၊ Category အလိုက် Total sum နဲ့ Supplier name ပါဝင်တဲ့ merge ပြီးသား table တစ်ခု ရလဒ်ထွက်လာမှာ ဖြစ်ပါတယ်။၅ မိနစ် စမ်းကြည့်
မိနစ် 5 အတွင်း Task 2 နဲ့ Task 3 ကို ဆက်တိုက် run ကြည့်ပြီး groupby result ထဲမှာ Drink category ရဲ့ Total sum ဘယ်လောက်ရလဲ ကိုယ်တိုင်တွက်ပြီး output နဲ့ ယှဉ်စစ်ကြည့်ပါ။
သတိလေးတစ်ချက်
fillna() နဲ့ mean value ဖြည့်တဲ့အခါ column ရဲ့ data type (numeric ဖြစ်မဖြစ်) ကို အရင်စစ်ပါ - text column ကို mean နဲ့ ဖြည့်ဖို့ကြိုးစားရင် error တက်ပါလိမ့်မယ်။