Time Series Forecasting
Foundations Pandas & Statsmodels

Time Series Basics

Understand what time series data is, its main components, and how to handle time-indexed data in Python.

What is a Time Series?

A time series is a sequence of data points recorded over time (daily sales, hourly temperature, monthly website visits, etc.).

  • Trend: long-term increase or decrease.
  • Seasonality: repeating patterns (daily, weekly, yearly).
  • Noise: random fluctuations.

Working with Time Index in pandas

Creating a Simple Time Series
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Create date range
dates = pd.date_range(start="2024-01-01", periods=30, freq="D")

# Simulate daily sales with trend + noise
np.random.seed(42)
sales = 100 + np.arange(30) * 2 + np.random.normal(scale=5, size=30)

ts = pd.Series(sales, index=dates)

print(ts.head())

ts.plot(figsize=(10, 4), title="Daily Sales")
plt.ylabel("Sales")
plt.show()

Resampling (Changing Frequency)

Daily to Weekly
# Sum sales per week
weekly_sales = ts.resample("W").sum()
print(weekly_sales)

weekly_sales.plot(kind="bar", figsize=(8, 4), title="Weekly Sales")
plt.ylabel("Sales")
plt.show()