दिन 11: CSV, Excel, JSON पढ़ें और Explore करें
✅ आज आप सीखेंगे
- घंटे बचाने वाले read_csv options
- Excel sheets पढ़ना और लिखना
- APIs का JSON पढ़ना (json_normalize)
- किसी भी नए dataset की 5-मिनट checklist
- साफ़ results को CSV / Excel में save करना
🏢 असली दुनिया में
Manager सुबह 10 बजे 40 MB की Excel file भेजता है और 11 बजे तक पूछता है “इसमें क्या है?”। दोहराने योग्य read-and-explore routine से आप भरोसे से जवाब देते हैं – rows, columns, types, missing values, ranges और पहली हैरानियाँ।
read_csv – सबसे ज़्यादा इस्तेमाल होने वाला function
import pandas as pd
sales = pd.read_csv("sales_data.csv")
print(sales.shape)
print(sales.head(3))| Option | क्या करता है | Example |
|---|---|---|
| usecols | Read only some columns (less memory) | usecols=["city", "unit_price"] |
| nrows | Read the first n rows (quick peek) | nrows=1000 |
| parse_dates | Convert date text to real dates | parse_dates=["order_date"] |
| dtype | Force a type, e.g. keep IDs as text | dtype={"pincode": str} |
| sep | Other separators | sep=";" or sep="\t" |
| na_values | Extra words that mean missing | na_values=["NA", "-", "?"] |
| encoding | Files from Excel/Windows | encoding="latin-1" |
import pandas as pd
small = pd.read_csv("sales_data.csv", usecols=["order_date", "city", "category", "unit_price"],
parse_dates=["order_date"], nrows=5)
print(small)
print(small.dtypes)import pandas as pd
from io import StringIO
raw = """id;city;pincode;amount
1;Pune;411001;450
2;Agra;-;?
3;Delhi;110001;1299"""
df = pd.read_csv(StringIO(raw), sep=";", dtype={"pincode": str}, na_values=["-", "?"])
print(df)
print(df.dtypes)Pincodes, phone numbers और 012345 जैसे IDs numbers के रूप में पढ़ने पर शुरू का zero खो देते हैं। dtype={"pincode": str} लिखें।
Excel files
import pandas as pd
sales = pd.read_csv("sales_data.csv")
with pd.ExcelWriter("report.xlsx") as xl: # needs: pip install openpyxl
sales[sales["region"] == "North"].to_excel(xl, sheet_name="North", index=False)
sales[sales["region"] == "South"].to_excel(xl, sheet_name="South", index=False)
sheets = pd.read_excel("report.xlsx", sheet_name=None) # all sheets -> dict
for name, df in sheets.items():
print(name, df.shape)
north = pd.read_excel("report.xlsx", sheet_name="North", usecols="A:D", nrows=3)
print(north)JSON और APIs
import pandas as pd
api_response = [
{"id": 1, "customer": {"name": "Riya", "city": "Pune"}, "items": 3, "total": 1450},
{"id": 2, "customer": {"name": "Om", "city": "Delhi"}, "items": 1, "total": 15999},
]
flat = pd.json_normalize(api_response) # nested keys -> columns
print(flat)
flat.to_json("orders.json", orient="records", indent=2)
print(pd.read_json("orders.json").shape)url = "https://example.com/data/sales.csv" # any public CSV link df = pd.read_csv(url) # APIs: import requests; data = requests.get(api_url).json(); pd.json_normalize(data)
5-मिनट exploration checklist
- 1
df.shape– कितना बड़ा? - 2
df.head()/df.sample(5)– row कैसी दिखती है? - 3
df.info()– column types और missing counts - 4
df.describe()– numbers की ranges; असंभव values पकड़ें - 5
df.isna().sum()औरdf.nunique()– gaps और categories - 6
df["col"].value_counts()– बड़ी categories
import pandas as pd
df = pd.read_csv("telecom_churn.csv")
print("Shape:", df.shape)
print(df.sample(3, random_state=1))
df.info()import pandas as pd
df = pd.read_csv("telecom_churn.csv")
print(df.describe().round(1))
print("\nMissing values:\n", df.isna().sum()[df.isna().sum() > 0])
print("\nUnique values per column:\n", df.nunique())import pandas as pd
df = pd.read_csv("telecom_churn.csv")
print(df["contract"].value_counts())
print(df["churn"].value_counts(normalize=True).round(3))
print(df.describe(include="object"))5 मिनट में हम जान गए: 3,000 customers, 25 missing total_charges, 29% churn हुए, और ज़्यादातर customers monthly contract पर हैं। ऐसे notes लिखते रहें – यही आपके project की “Insights” slide बनेंगे (Day 57)।
Results save करना
import pandas as pd
df = pd.read_csv("telecom_churn.csv")
monthly = df[df["contract"] == "Monthly"]
monthly.to_csv("monthly_customers.csv", index=False)
print("Saved", len(monthly), "rows;", round(len(monthly) / len(df) * 100, 1), "% of customers")
print(pd.read_csv("monthly_customers.csv").columns.tolist()[:5])🏅 आज के Job Skills
Practice tasks
🏋️ Practice – ख़ुद करें
house_prices.csv से सिर्फ़ city, area_sqft और price_lakh पढ़ें और 3 सबसे बड़े घर print करें।Solution देखें
import pandas as pd
h = pd.read_csv("house_prices.csv", usecols=["city", "area_sqft", "price_lakh"])
print(h.nlargest(3, "area_sqft"))loan_applications.csv पर 5-मिनट checklist चलाएँ। कितने % applications approve हुईं?Solution देखें
import pandas as pd
loans = pd.read_csv("loan_applications.csv")
print(loans.shape, loans.isna().sum().sum())
print(loans["approved"].mean().round(3))sales_data.csv के Electronics orders को Excel file में save करें, हर region की अलग sheet।Quick quiz
🧠 Quick Quiz – ख़ुद को जाँचें
Interview corner
💼 Interview Corner
नए dataset के साथ सबसे पहले क्या करते हैं?
Size और कुछ sample rows देखते हैं, फिर types और missing values के लिए info(), ranges और असंभव values के लिए describe(), categories के लिए nunique()/value_counts(), और modelling से पहले सवाल व data-quality issues लिखते हैं।
Memory से बड़ी file pandas से कैसे पढ़ेंगे?
usecols और सही dtypes (category, int32) से छोटा करें, या chunksize से chunks में पढ़कर हर chunk aggregate करें; बहुत बड़े data के लिए database, Parquet files या Polars/Spark जैसे tools।
सारांश
- usecols, nrows, parse_dates, dtype और na_values के साथ read_csv।
- read_excel / to_excel multi-sheet workbooks संभालते हैं।
- json_normalize API data को flatten करता है।
- Checklist: shape → head → info → describe → isna/nunique → value_counts।
Day 12: loc, iloc, boolean filters, query और sorting से ठीक वही rows और columns चुनें जो चाहिए।
