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

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

25.2 rank — peers मधलं स्थान

By Ravindra Bagale

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

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

मोठा GMV म्हणजे rank 1 (ascending=False). Ties कसे मोडायचे ते ठरवा.

हे काय आहे?

Series.rank(ascending=False, method="dense").

कसं करायचं?

Step 1. Metric column.

Step 2. rank काढा.

Step 3. Tie method निवडा.

Step 4. Top 5 पाहा.

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

method Tie behaviour (high amounts first)
average (default) Both get 1.5 if they share #1
min Both get 1; next gets 3
dense Both get 1; next gets 2 (no gap)
first Order of appearance breaks the tie

उदाहरण A — Dense rank on baskets.

import pandas as pd

df = pd.DataFrame({
    "order_id": ["BLK-1", "BLK-2", "BLK-3", "AMN-4", "BLK-5"],
    "city": ["Pune", "Pune", "Nashik", "Kolhapur", "Pune"],
    "amount_inr": [210, 210, 95, 180, 150],
    "customer": ["Ruhi Bagale", "Amir", "Zoya", "Ravina", "Salman"],
})
df["rank_dense"] = df["amount_inr"].rank(ascending=False, method="dense")
df["rank_min"] = df["amount_inr"].rank(ascending=False, method="min")
df["rank_avg"] = df["amount_inr"].rank(ascending=False, method="average")
print(df.sort_values("rank_dense")[
    ["order_id", "amount_inr", "rank_dense", "rank_min", "rank_avg"]
])

What you should see. Both ₹210 rows share dense rank 1; next amount gets 2. min leaves a gap (next is 3). average shows 1.5.

उदाहरण B — Rank low delivery minutes (faster is better).

df = pd.DataFrame({
    "order_id": ["BLK-10", "BLK-11", "AMN-12"],
    "city": ["Solapur", "Nagpur", "Pune"],
    "delivery_mins": [11, 18, 11],
})
df["fast_rank"] = df["delivery_mins"].rank(ascending=True, method="dense")
print(df.sort_values("fast_rank"))

उदाहरण C — Interview one-liner.

“I use rank(ascending=False, method='dense') on GMV so ties share a place and the next city is still #2.”