import pandas as pd
import numpy as np

print(f"pandas version: {pd.__version__}")
print(f"numpy version: {np.__version__}")
print(f"\nβœ… pandas is ready to use!")

# Quick test - Create a simple DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 28],
    'City': ['NYC', 'SF', 'LA', 'Chicago'],
    'Salary': [70000, 85000, 92000, 78000]
})

print("\nSample DataFrame:")
print(df)
print(f"\nShape: {df.shape}")
print(f"Columns: {list(df.columns)}")
print(f"\nπŸŽ‰ You're ready to start learning pandas!")

πŸ“Š What You’ll LearnΒΆ

Core SkillsΒΆ

  • βœ… Reading data from CSV, Excel, JSON, SQL

  • βœ… Data cleaning (missing values, duplicates, formatting)

  • βœ… Filtering, sorting, and selection

  • βœ… GroupBy operations and aggregations

  • βœ… Merging, joining, and concatenating DataFrames

  • βœ… DateTime manipulation and time series

  • βœ… String operations and text processing

  • βœ… Data visualization with pandas

Advanced SkillsΒΆ

  • βœ… MultiIndex and hierarchical data

  • βœ… Custom aggregation functions

  • βœ… Window functions and rolling operations

  • βœ… Performance optimization

  • βœ… Memory-efficient operations

  • βœ… Method chaining and .pipe()

πŸ’‘ Pro Tips for SuccessΒΆ

1. Practice DailyΒΆ

# 30-60 minutes daily > 3 hours on weekends
# Consistency builds muscle memory

2. Type, Don’t CopyΒΆ

# Typing code builds understanding
# Copy-paste doesn't stick

3. Use DocumentationΒΆ

# In Jupyter:
df.groupby?  # Shows documentation

4. ExperimentΒΆ

# Modify examples
# Break things (safely)
# Understand WHY it works

5. Benchmark PerformanceΒΆ

# Compare different approaches
%timeit df.groupby('column').sum()

6. Read Error MessagesΒΆ

# Errors are learning opportunities
# Read them carefully
# Google specific error messages

πŸ“– Essential pandas OperationsΒΆ

Must-Know MethodsΒΆ

Selection:

df.loc[row, column]      # Label-based
df.iloc[0, 0]            # Position-based
df[df['Age'] > 25]       # Boolean indexing
df.query('Age > 25')     # SQL-like syntax

GroupBy:

df.groupby('column').sum()
df.groupby('column').agg({'col1': 'mean', 'col2': 'sum'})
df.groupby(['col1', 'col2']).size()

Merging:

pd.merge(df1, df2, on='key')
df1.join(df2)
pd.concat([df1, df2])

Missing Data:

df.isna()                # Check for NaN
df.fillna(0)             # Fill with value
df.dropna()              # Drop rows with NaN
df.fillna(method='ffill') # Forward fill

πŸ“ˆ Progress TrackingΒΆ

Track Your JourneyΒΆ

Week 1-3: Basics ☐

  • Completed Pandas 101 series

  • Finished DataFrames I-III

  • Solved first 30 puzzles

Week 4-8: Intermediate ☐

  • All 02-intermediate notebooks

  • Completed 100 pandas puzzles

  • Topics 01-05 exercises

Week 9-12: Advanced ☐

  • Topics 06-11 exercises

  • pandas-cookbook recipes

  • Both real-world projects

πŸ”— Additional ResourcesΒΆ

Official DocumentationΒΆ

BooksΒΆ

Practice DatasetsΒΆ

πŸ“Š Collection StatisticsΒΆ

  • Total Notebooks: 151

  • Exercise Sets: 100+ puzzles + 11 topic categories

  • Real Projects: 2 complete analyses

  • Datasets: 20+ CSV/Excel files

  • Total Size: 173 MB

πŸŽ“ Ready to Begin?ΒΆ

Next Steps:ΒΆ

  1. Choose your path above (Beginner, Intermediate, or Advanced)

  2. Read the README.md for detailed topic coverage

  3. Start with: Pandas 101 - Series and Dataframes

Remember:ΒΆ

  • Start slow, build solid foundations

  • Practice daily for best results

  • Don’t skip exercises

  • Apply to real data when possible

Good luck on your pandas journey! 🐼