遅延実行でのワイド形式へのピボット
ダッシュボードチームは、月別・形式別のチェックアウト数をワイド形式で確認したいと考えています。Polars では、出力列名を事前に指定することで遅延モードでも .pivot() を使用でき、パイプライン全体を最適化した状態に保てます。
LazyFrame の monthly_checkouts には、month・format・total 列を持つロング形式の合計データが格納されており、リスト formats にはデータ内のすべての形式名が含まれています。
この演習はコースの一部です
Polars によるデータパイプラインのスケーリングと最適化
演習の手順
monthly_checkoutsをピボットして、各formatを独立した列に変換しましょう。- 遅延ピボットが出力スキーマを事前に把握できるよう、
formatsリストを渡しましょう。 - 結果の DataFrame を
monthで並べ替えましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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)