You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rust Polars中如何类似fill_null那样替换Series中的指定值?

实现0值前向填充的高效方案

以下是不同技术栈下的简单实现方式,均为原生库自带的向量化操作,性能足以应对绝大多数数据集规模:

Python(pandas 场景,最常用)

核心逻辑是先将作为缺失值标识的0转为标准空值,再调用原生前向填充方法:

import pandas as pd
import numpy as np

# 全表替换+前向填充
df = df.replace(0, np.nan).ffill()

# 仅指定列处理(避免覆盖有效值为0的列)
target_cols = ["列1", "列2"]
df[target_cols] = df[target_cols].replace(0, np.nan).ffill()
  • 参数说明:ffill()默认按行向下填充,如需按列向左/向右填充,可加axis=1参数;可加limit=N限制最多连续填充N个空值。
  • 性能:百万行数据集处理耗时通常在100ms以内。

R 场景

使用dplyr+tidyr的原生方法即可实现:

library(dplyr)
library(tidyr)

# 全表处理
df <- df %>%
  mutate(across(everything(), ~ifelse(.x == 0, NA, .x))) %>%
  fill(everything(), .direction = "down")

# 指定列处理
target_cols <- c("列1", "列2")
df <- df %>%
  mutate(across(all_of(target_cols), ~ifelse(.x == 0, NA, .x))) %>%
  fill(all_of(target_cols), .direction = "down")

注意:如果数据集首行存在0值,前向填充无法填补首行空缺,需要额外补充首行填充逻辑(比如用后向填充补首行,或者固定默认值)。

内容的提问来源于stack exchange,提问作者JulioBarros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:36:03