如何获取时间序列 df 中特定列的第一次、最后一次出现 (>0),
shape: (4, 3)
┌────────────┬────────────┬────────────┐
│ date ┆ column_one ┆ column_two │
│ --- ┆ --- ┆ --- │
│ date ┆ f64 ┆ i64 │
╞════════════╪════════════╪════════════╡
│ 2024-06-01 ┆ 0.0 ┆ 0 │
│ 2024-06-02 ┆ 0.0 ┆ 1 │
│ 2024-06-03 ┆ 1.0 ┆ 2 │
│ 2024-06-04 ┆ 1.2 ┆ 3 │
└────────────┴────────────┴────────────┘
并将其存储在单独的 df 中,
columns | first_appearance | last_appearance
column_one | 2024-06-03 | 2024-06-04
column_two | 2024-06-02 | 2024-06-04
首先使用 获得具有列、、 和 的
pl.DataFrame.melt
长框架,即可获得所需的结果。然后,分组依据给出每个时间序列中第一个和最后一个出现 > 0 的值。date
columns
value
columns
笔记。如果数据帧按 排序
date
,则可以使用pl.Expr.first
/pl.Expr.last
代替pl.Expr.min
/pl.Expr.max
。pl.DataFrame.filter
此外,聚合中的两个过滤器表达式可以在聚合之前替换为单个过滤器表达式。