df-drills pandas · Polars · DuckDB SQL · DuckDB Relational 题目列表 登录

lazy pivot

中等 23-polars-only Polars 专属 pivotlazyreshape

把月度销售明细转成“每店一行、每月一列”的宽表,只看第一季度。

  • 列为 store, jan, feb, mar,值是该店该月 amount 的合计。
  • month 取值不只 jan/feb/mar,其他月份的记录忽略。
  • 合计时忽略 null 金额;某店某月没有记录(或金额全为 null)时,该格为 0。
  • 表里出现过的每一家店都要输出一行,即使它在第一季度没有任何记录(这时三列都是 0)。
  • result 必须是 LazyFrame:先把输入表转成惰性的,整条管道都在惰性模式下完成,不要 collect,判题器会替你 collect。

输入

  • sales(store, month, amount)

输出

列为 store, jan, feb, mar,行顺序不限。

输入表 (case base,共 2 个 case:base、edge)

sales local/base/sales
#storestringmonthstringamountfloat64
1 s1 jan 120.0
2 s1 jan 30.0
3 s1 feb 200.0
4 s1 mar 180.0
5 s2 jan 90.0
6 s2 feb 95.5
7 s2 mar 110.0
8 s2 mar 15.0
9 s3 jan 60.0
10 s3 mar 75.0
共 10 行

期望输出 (case base,行顺序不限)

#storeStringjanFloat64febFloat64marFloat64
1 s3 60.0 0.0 75.0
2 s1 150.0 200.0 180.0
3 s2 90.0 95.5 125.0
共 3 行