Lesson 28 � Data Science

PANDAS:
DATA ANALYSIS.

Pandas data analysis ka sabse popular library hai � CSV, Excel, databases se data load karo, clean karo, analyze karo. Data scientists daily use karte hain. Ye lesson sikhaega ki Pandas se tables kaise banate ho, data filter karte ho, aur insights nikalte ho.

? 24 min✓ IntermediatePrerequisite: NumPy

WHY: Pandas kyun zaroori hai?

Socho aapke paas 1000 students ka data hai � names, marks, attendance. Excel mein thik hai, but jab data lakhs ka ho ya analysis complex ho, tab Pandas hai. Pandas se aap CSV read kar sakte ho, columns filter kar sakte ho, group banake average nikal sakte ho � sab Python code se, manually nahi. Har data science project mein Pandas step 1 hota hai.

DATAFRAME

Table jaisa data structure � rows aur columns ka 2D collection.

SERIES

Single column ya row ka 1D array � DataFrame ka ek piece.

LOC / ILOC

Data select karna by label (loc) ya by integer position (iloc).

GROUPBY

Data ko groups mein baant ke aggregate calculations karna.

WHEN: kab use hota hai

Pandas tab use hota hai jab aapko tabular data handle karna ho � CSV files parse karna, database results analyze karna, Excel sheets process karna, ya web scraping ka data clean karna. Data cleaning, transformation, aur analysis � teeno Pandas se hota hai.

HOW: Pandas operations

DataFrame banana

python
import pandas as pd

# Dictionary se DataFrame
data = {
 "Name": ["Aman", "Priya", "Rahul"],
 "Age": [22, 21, 23],
 "Marks": [85, 92, 78]
}
df = pd.DataFrame(data)
print(df)
# Name Age Marks
# 0 Aman 22 85
# 1 Priya 21 92
# 2 Rahul 23 78

pd.DataFrame() dictionary se table bana deta hai. Keys column names ban jaate hain, values rows mein aate hain.

CSV file read karna

python
import pandas as pd

# CSV read karo
df = pd.read_csv("students.csv")

# Pehle 5 rows dekho
print(df.head())

# Statistics dekho
print(df.describe())

# Columns aur types dekho
print(df.info())

read_csv() CSV file ko DataFrame mein convert karta hai. head() pehle 5 rows, describe() statistics, aur info() column details deta hai.

Data select aur filter karna

python
import pandas as pd

data = {
 "Name": ["Aman", "Priya", "Rahul"],
 "Age": [22, 21, 23],
 "Marks": [85, 92, 78]
}
df = pd.DataFrame(data)

# Column select karo
print(df["Name"])
# 0 Aman
# 1 Priya
# 2 Rahul

# Filter: marks > 80
print(df[df["Marks"] > 80])
# Name Age Marks
# 0 Aman 22 85
# 1 Priya 21 92

# loc: label se select
print(df.loc[0, "Name"]) # Aman

# iloc: position se select
print(df.iloc[0, 1]) # 22

Column ke naam se directly select hota hai. df[df["Marks"] > 80] se filtered rows milti hain. loc label se, iloc integer position se data nikalta hai.

Naya column add karna

python
import pandas as pd

data = {
 "Name": ["Aman", "Priya", "Rahul"],
 "Marks": [85, 92, 78]
}
df = pd.DataFrame(data)

# Grade column add karo
df["Grade"] = df["Marks"].apply(lambda x: "A" if x > 85 else "B")
print(df)
# Name Marks Grade
# 0 Aman 85 B
# 1 Priya 92 A
# 2 Rahul 78 B

.apply() har row par function apply karta hai. Lambda use karke conditional logic laga sakte ho naye column ke liye.

GroupBy aur aggregation

python
import pandas as pd

data = {
 "Name": ["Aman", "Priya", "Rahul", "Sita"],
 "Grade": ["A", "A", "B", "A"],
 "Marks": [85, 92, 78, 88]
}
df = pd.DataFrame(data)

# Grade-wise average marks
print(df.groupby("Grade")["Marks"].mean())
# Grade
# A 88.33
# B 78.00

# Grade-wise count
print(df.groupby("Grade")["Name"].count())
# Grade
# A 3
# B 1

groupby() data ko groups mein baanta hai. Phir mean(), sum(), count() jaise functions apply kar sakte ho har group par.

CSV mein save karna

python
import pandas as pd

data = {"Name": ["Aman", "Priya"], "Marks": [85, 92]}
df = pd.DataFrame(data)

# CSV mein save karo
df.to_csv("output.csv", index=False)

# Excel mein save karo
df.to_excel("output.xlsx", index=False)

to_csv() aur to_excel() DataFrame ko files mein save karte hain. index=False se row numbers nahi likhte.

Try it: student marks analyzerDataFrame banao, filter karo, average nikalo
Code ko apni values se update karke run karein

Useful Pandas operations

Series kya hai?

python
import pandas as pd

# Series = single column
marks = pd.Series([85, 92, 78], index=["Aman", "Priya", "Rahul"])
print(marks)
# Aman 85
# Priya 92
# Rahul 78

print(marks["Priya"]) # 92
print(marks.mean()) # 85.0

Series ek labeled array hai. DataFrame ka ek column bhi Series hota hai. df["Name"] Series return karta hai.

Quick check

DataFrame banao 3 students ka aur marks ka average nikalo. Naam aur marks dono rakho.

Pehle import pandas as pd likho, phir pd.DataFrame() se dictionary convert karo, phir df["Marks"].mean() se average nikalo.

Common mistakes

Pandas clear?

Ab aap CSV data load karke analyze kar sakte ho � ye skill data science mein sabse zyada use hoti hai.