Loading Academy Hub...
Process high-frequency financial and IoT telemetry: rolling statistical windows, exponential moving averages (EWM), forward fills, frequency downsampling, and UTC timezone localization.
[!NOTE] Time-series telemetry from IoT sensors or trading platforms arrives with timestamps in varying timezones, out-of-order records, and missing sample intervals. Pandas provides native C-optimized time-series engines.
resample('5min').mean(): Downsamples high-frequency data into discrete 5-minute buckets.rolling(window='1h').sum(): Computes a continuous rolling metric over a 1-hour temporal window.tz_localize('UTC').tz_convert('America/New_York'): Handles daylight saving time transitions without arithmetic bugs.tz_localize("UTC", ambiguous="infer") or utc=True), convert with .tz_convert(...) only for user presentation, and NEVER mix timezone-aware with timezone-naive columns in joins!closed="left" is needed on time-based rolling windows (df.rolling("7D", closed="left")) so current-row outcome doesn't leak into its own lookback feature!df.resample("1H", on="event_ts").sum() creates continuous time buckets safely—filling empty intervals with 0 rather than silently skipping quiet hours.Review the production code, company interview Q&As, incident traces, and comprehension quiz inside this lesson.
import pandas as pd
import numpy as np
# Generate sample time series
timestamps = pd.date_range('2026-01-01 00:00:00', periods=1000, freq='1min', tz='UTC')
df = pd.DataFrame({
'timestamp': timestamps,
'sensor_val': np.random.normal(50, 5, size=1000)
}).set_index('timestamp')
# 1. Resample to 15-minute mean aggregates
df_15m = df.resample('15min').agg({
'sensor_val': ['mean', 'min', 'max', 'count']
})
# 2. Compute 1-hour rolling standard deviation
df['rolling_std_1h'] = df['sensor_val'].rolling(window='1h').std()
# 3. Detect anomalies (> 3 standard deviations)
df['is_anomaly'] = (df['sensor_val'] - df['sensor_val'].rolling('1h').mean()).abs() > (3 * df['rolling_std_1h'])pytz.exceptions.AmbiguousTimeError: Cannot infer dst time from 2026-11-01 01:30:00