複数ファイルのスキャン
チームのチェックアウトデータは、年ごとに1つのCSVファイル(seattle_2021.csv、seattle_2022.csv、seattle_2023.csv)に分割されています。これらの年次ファイルでは、usageclass と materialtype というレガシー列名が使用されています。グロブパターンを使ってすべてのファイルを1つの論理的なデータセットとしてスキャンし、物理的なチェックアウトのサマリーを作成しましょう。
polars は pl としてロードされており、ディレクトリは MULTIFILE_DIR に格納されています。
この演習はコースの一部です
Polars によるデータパイプラインのスケーリングと最適化
演習の手順
- グロブパターンを使って、
MULTIFILE_DIR内のすべてのseattle_*.csvファイルをスキャンします。 - 結合したデータセットを
"Physical"チェックアウトに絞り込み、materialtypeでグループ化します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Scan every yearly file using a glob pattern
yearly_checkouts = pl.____(
str(MULTIFILE_DIR / "____")
)
# Build a physical-checkout summary across the combined dataset
result = (
yearly_checkouts
# Filter to physical
.filter(pl.col("usageclass") == "____")
.group_by("____")
.agg(pl.col("checkouts").sum().alias("total"))
.sort("total", descending=True)
.collect()
)
print(result)