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

如何将DataFrame的Per_Extract列有效值填充至所有NaN行?

解决DataFrame中用唯一有效值填充NaN的问题

问题场景

你有如下DataFrame,希望将Per_Extract列中唯一的有效值填充到该列所有NaN位置:

原始DataFrame:

IN          Per_Extract                                 
0   IN7395593   NaN 
1   IN7444113   FROM : 2022-08-01 TO : 2022-10-20   
2   IN7444613   FROM : 2022-08-01 TO : 2022-10-20   
3   IN7444116   FROM : 2022-08-01 TO : 2022-10-20   
4   IN7334213   NaN 

期望输出:

IN          Per_Extract                                 
0   IN7395593   FROM : 2022-08-01 TO : 2022-10-20   
1   IN7444113   FROM : 2022-08-01 TO : 2022-10-20   
2   IN7444613   FROM : 2022-08-01 TO : 2022-10-20   
3   IN7444116   FROM : 2022-08-01 TO : 2022-10-20   
4   IN7334213   FROM : 2022-08-01 TO : 2022-10-20   

你尝试使用ffill()方法但未生效:

df['Per_Extract'] = df['Per_Extract'].ffill()

解决方案

ffill()失效的原因是它仅会用当前行之前的有效值填充后续的NaN,但第一行的NaN没有前置有效值,无法被填充;同时它也不会用后续的有效值反向填充前面的NaN。

要实现用列中唯一有效值填充所有NaN,可按以下步骤操作:

  1. 提取Per_Extract列的非空唯一有效值
  2. 使用该值填充列内所有NaN

示例代码:

# 获取唯一的非空有效值
valid_value = df['Per_Extract'].dropna().unique()[0]

# 填充所有NaN
df['Per_Extract'] = df['Per_Extract'].fillna(valid_value)

运行后即可得到你期望的输出结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:55:17