# 9.3 Types, missing values आणि duplicates

Source: https://ravindrabagale.com/mr/datascience/ch09-data-cleaning-a-z-in-pandas/9-3-types-missing-duplicates.html
Language: mr (Marathi with English technical terms)

Amount मधले commas काढू, N/A ला missing मानू आणि numeric conversion करू. Convert न होणारी value errors="coerce" मुळे NaN होते. पुढे missing city साठी Unknown वापरतो.

df["amount"] = (
    df["amount"].astype(str)
      .str.replace(",", "", regex=False)
      .replace({"N/A": np.nan, "nan": np.nan})
)
df["amount"] = pd.to_numeric(df["amount"], errors="coerce")

print(df.isna().sum())
df["city"] = df["city"].fillna("Unknown")

# duplicate order lines
print(df["order_id"].duplicated().sum())
df = df.drop_duplicates(subset=["order_id"], keep="first")

या sample ची मर्यादा: इथे BLK-2 ही पुनरावृत्ती झालेली नोंद आहे, म्हणून order_id वर duplicate काढतो. वास्तविक order-line table मध्ये एका order_id च्या अनेक वैध products असू शकतात. अशा वेळी फक्त order_id वर deduplicate करू नका; खरी line key वापरा.

रवींद्र बागले यांची tip

Coerce मुळे error थांबतो, पण चुकीची value दुरुस्त होत नाही — ती NaN होते. Conversion आधी आणि नंतर missing count तपासा.
