如何在Pandas中将列值填充至同列下一行直至下一个有效值
解决Pandas中列值向下填充至下一个有效值前的所有行
核心需求可以通过Pandas的**向前填充(forward fill)**功能直接实现,也就是ffill()方法,它会把每一个有效值向下填充,直到遇到下一个新的有效值为止。
示例代码
- 先构造模拟场景的测试数据:
import pandas as pd import numpy as np df = pd.DataFrame({ 'Target_Column': ['Value1', np.nan, np.nan, 'Value2', np.nan, 'Value3', np.nan, np.nan] })
- 执行填充操作:
# 对目标列应用向前填充 df['Target_Column'] = df['Target_Column'].ffill()
- 最终结果:
Target_Column 0 Value1 1 Value1 2 Value1 3 Value2 4 Value2 5 Value3 6 Value3 7 Value3
特殊情况处理
如果你的列中空值不是NaN,而是空字符串'',需要先将其转换为NaN再执行填充:
# 替换空字符串为NaN,再向前填充 df['Target_Column'] = df['Target_Column'].replace('', np.nan).ffill()
内容的提问来源于stack exchange,提问作者Vignesh Vangala
相关产品推荐
相关产品推荐

