Back to portfolio
GitHub Email
Technical Writing

Building with Python and Pandas

Medium Article By Ali Zeb · 6 min read

Whether you're cleaning messy datasets or building production data pipelines, Pandas is one of the most essential tools in a Python developer's toolkit. This article covers practical techniques I've used — and mistakes I've learned from — working on real data engineering projects.

1. Why Pandas?

Pandas makes data manipulation intuitive and efficient. Its DataFrame structure lets you slice, filter, group, and transform data with minimal code. It handles everything from exploratory analysis to production-grade ETL pipelines — and it integrates cleanly with NumPy, Matplotlib, Seaborn, and database connectors like SQLAlchemy.

2. Getting Started

Install and import:

pip install pandas
import pandas as pd

3. Loading Data

Pandas supports CSV, Excel, JSON, SQL, and more. For most data engineering work, CSV and database reads are the most common entry points:

# From CSV
df = pd.read_csv('sales.csv')

# From a PostgreSQL table (via SQLAlchemy)
from sqlalchemy import create_engine
engine = create_engine('postgresql://user:pass@localhost/mydb')
df = pd.read_sql('SELECT * FROM sales', engine)

4. Cleaning & Transforming

Real data is always messy. The most common operations are handling nulls, fixing dtypes, and applying transformations:

# Handle nulls and cast type
df['Revenue'] = df['Revenue'].fillna(0).astype(float)

# Strip whitespace from string columns
df['Region'] = df['Region'].str.strip().str.title()

# Apply a custom transformation
df['Revenue_USD'] = df['Revenue'].apply(lambda x: x * 0.0036)

Tip: always call df.info() and df.describe() before any transformation. Understanding your data's shape, dtypes, and null counts saves hours of debugging.

5. Grouping & Aggregation

Groupby is where Pandas really earns its place in data pipelines. Summarising by time period or category is a one-liner:

# Total revenue by month
monthly = df.groupby('Month')['Revenue'].sum().reset_index()

# Multiple aggregations at once
summary = df.groupby('Region').agg(
    total_revenue=('Revenue', 'sum'),
    avg_order=('Revenue', 'mean'),
    order_count=('OrderID', 'count')
)

6. Best Practices

7. Real-World Application

In my Retail Sales ETL Pipeline, Pandas is the core engine — extracting raw CSV sales data, applying all cleaning and transformation logic, then loading the result into PostgreSQL. The final step generates dashboards with Matplotlib and Seaborn that make the data actually usable.

Whether you're just starting out or refining production pipelines, Pandas will become your most-used library. Keep experimenting, keep building, and let the data guide your decisions.

Back to portfolio Ali Zeb — 2025 More writings