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

Pandas DataFrame列填充前序非空值后续空值的实现方法

解决方案

你要的这种「前序非空值填充后续空值」的需求,Pandas已经提供了原生矢量化实现,完全不需要写循环,直接用ffill()(向前填充)方法即可,性能远高于iterrows()/itertuples()循环方案。

实现步骤

  • 第一步:先把dept列里的空字符串替换为空值(ffill默认自动跳过空值向后填充)
  • 第二步:调用ffill()方法完成填充

完整代码

import pandas as pd
import numpy as np

# 示例数据
data = {"dept": ["Emergency Medicine", "", "", "", "Family Practice", "", ""],
        "pi": [np.NaN, "Tiger Woods", "Michael Jordan", "Roger Federer", np.NaN, "Serena Williams", "Alex Morgan"]
        }
df = pd.DataFrame(data=data)

# 核心处理逻辑
df['dept'] = df['dept'].replace('', pd.NA).ffill()

# 输出结果与期望完全一致
print(df)

说明

ffill()是Pandas内置的向量化方法,底层由C实现,百万行级数据处理仅需毫秒,完全不需要自己写循环遍历。如果你的dept列空值本身就是NaN而非空字符串,直接省略replace步骤,仅写df['dept'] = df['dept'].ffill()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:36:03