如何在Polars中选取某列最后一个非空值及同行另一列的值
在Polars中获取最后一个非空值对应列的方法
你之前的代码仅单独提取了Open列最后一个非空值,但未将Time列与该值关联,导致无法拿到对应行的Time。
解决方案1:过滤非空行后取最后一行
直接筛选出Open不为空的所有行,再取最后一行,即可同时获取对应的Time和Open值:
sel = self.data.filter(pl.col('Open').is_not_null()).tail(1)
解决方案2:通过位置索引提取
先找到最后一个非空Open的位置索引,再提取对应行:
# 获取最后一个非空Open的索引 last_valid_idx = self.data.select(pl.col('Open').arg_last()).item() # 提取该行数据 sel = self.data.slice(last_valid_idx, 1)
这两种方法都能精准拿到你需要的对应行数据。
内容的提问来源于stack exchange,提问作者aiv
相关产品推荐
相关产品推荐

