Get startedGet started for free

Lazy pivot to wide format

The dashboard team wants a wide month-by-format view of checkouts. Polars supports .pivot() in lazy mode when you specify the output column names in advance, which keeps the whole pipeline optimized end to end.

The LazyFrame monthly_checkouts holds totals in long format with a month, format, and total column, and the list formats holds every format name in the data.

This exercise is part of the course

Scaling and Optimizing Data Pipelines with Polars

View Course

Exercise instructions

  • Pivot monthly_checkouts so each format becomes its own column.
  • Pass the formats list so the lazy pivot knows the output schema in advance.
  • Sort the resulting DataFrame by month.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

result = (
    monthly_checkouts
    # Pivot the format column into separate columns
    .pivot(
        on="____",
        index="month",
        values="total",
        # Pre-declare the output column names so the pivot stays lazy
        on_columns=____,
    )
    .collect()
    # Sort the wide result by month
    .sort("____")
)
print(result)
Edit and Run Code