Ravindra Bagale · Data Scienceसर्व coursesया course चे lessonsशोधाEnglish

Data Science · मराठी आवृत्ती

21.2 Mean, median आणि mode — ₹ orders सोबत

By Ravindra Bagale

या course चे सर्व chapters (py + ch)

हे का शिकायचं?

Average एकच कल्पना नाही. Mean टोकांकडे ओढलं जातं. Median मध्ये बसतं. Mode सर्वात common value आहे.

हे काय आहे?

Mean = जोडून count ने भागा. Median = sort केल्यावर मधली value. Mode = सर्वाधिक वारंवार value.

कसं करायचं?

Step 1. amount column घ्या.

Step 2. mean() चालवा.

Step 3. median() चालवा.

Step 4. mode() पाहा.

Step 5. Category साठी value_counts().idxmax() वापरा.

Step 6. Stat शेजारी count print करा.

उदाहरणं: copy करा आणि चालवा

Stat Plain English Good for
Mean Add all ₹, divide by count Stable, no huge outliers
Median Middle value after sorting Skewed ₹ baskets, salaries
Mode Most frequent value City name, payment method

उदाहरण A — Six Maharashtra cities (fictional delivered orders).

import pandas as pd

orders = pd.DataFrame({
    "order_id": [
        "BLK-261020-001", "BLK-261020-002", "BLK-261020-003",
        "BLK-261020-004", "AMN-261020-005", "BLK-261020-006",
        "BLK-261020-007", "AMN-261020-008", "BLK-261020-009",
        "BLK-261020-010", "BLK-261020-011", "AMN-261020-012",
    ],
    "city": [
        "Pune", "Pune", "Solapur", "Nashik", "Kolhapur", "Nagpur",
        "Pune", "Sambhaji Nagar", "Nashik", "Pune", "Solapur", "Nagpur",
    ],
    "customer": [
        "Ruhi Bagale", "Amir", "Zoya", "Salman", "Ravina", "Raja",
        "Shraddha Bagale", "Rani", "Shahrukh", "Ravindra Bagale", "Amir", "Zoya",
    ],
    "amount": [64, 189, 120, 95, 210, 150, 72, 340, 88, 1250, 110, 160],
    "status": ["Delivered"] * 12,
})

print("mean  ", round(orders["amount"].mean(), 1))
print("median", orders["amount"].median())
print("mode ₹", orders["amount"].mode().tolist())
print("mode city", orders["city"].mode().tolist())
print(orders.groupby("city")["amount"].agg(["count", "mean", "median"]).round(1))

What you should see. Overall mean is pulled up by Ravindra Bagale’s ₹1,250 festival hamper in Pune. Median stays near everyday kirana baskets. Mode for city is Pune (most rows). Mode for ₹ may be empty or weak — amounts rarely repeat exactly.

उदाहरण B — Same city, two stories.

pune = orders.loc[orders["city"] == "Pune", "amount"]
print("Pune mean", round(pune.mean(), 1), "median", pune.median())
print("Pune without max", round(pune[pune < pune.max()].mean(), 1))

When you drop the single ₹1,250 row, Pune’s mean falls hard; median barely moves. That is your teaching slide for “why median for ₹”.

उदाहरण C — Mode for ops, not for ₹.

print(orders["city"].value_counts())
# Payment-method style category (fictional)
pay = pd.Series(["UPI", "UPI", "Cash", "UPI", "Card", "UPI", "Cash"])
print("most common pay", pay.mode().iloc[0])

Raja in Nagpur asks “which pay method should the dark store promote?” Mode answers. Mean of UPI strings does not exist — right tool for the question.