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

如何在Python中将DataFrame单元格值向下填充至下一个有效值?

解决方法

核心思路

以--------作为分组边界,将每个用户的有效行和后续NaN行划分为同一组,在组内对Name列做向前填充,保留分隔线行不变,即可实现需求。

代码实现

import pandas as pd

# 构造输入的DataFrame
data = {
    'Name': ['John', pd.NA, pd.NA, '--------', 'Bill', pd.NA, pd.NA, pd.NA, pd.NA],
    'ID': ['0123', '0127', '0163', '', '0122', '0194', '0125', '0555', '0666']
}
df = pd.DataFrame(data)

# 创建分组标识:每遇到分隔线就切换分组
df['group'] = (df['Name'] == '--------').cumsum()

# 按分组填充Name列的空值,分隔线所在组不做填充
df['Name'] = df.groupby('group')['Name'].apply(lambda x: x.ffill() if x.iloc[0] != '--------' else x)

# 删除辅助的分组列
df = df.drop(columns='group')

# 输出结果
print(df.to_string(index=False))

运行结果

Name    ID
   John  0123
   John  0127
   John  0163
--------     
   Bill  0122
   Bill  0194
   Bill  0125
   Bill  0555
   Bill  0666

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:04:58