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

能否基于DataFrame上方行的值填充行?实现类Excel VLOOKUP功能

基于DataFrame上方行值填充缺失内容的方法

你可以通过构建Code与Name/Value的映射关系实现类似Excel VLOOKUP的填充效果,具体步骤如下:

1. 构造示例DataFrame

先将你给出的示例数据转换为pandas的DataFrame:

import pandas as pd

data = {
    'Code': [1, 2, 1, 2],
    'Name': ['Fred', 'Gary', None, None],
    'Value': [2, 2, None, None]
}
df = pd.DataFrame(data)

2. 创建映射表并填充缺失值

从已有完整数据的行中提取Code对应的Name和Value,生成映射关系,再用这个映射表填充缺失单元格:

# 提取有完整匹配关系的行,以Code为索引
mapping = df.dropna().set_index('Code')[['Name', 'Value']]

# 通过Code匹配映射表,填充Name和Value的缺失值
df['Name'] = df['Code'].map(mapping['Name'])
df['Value'] = df['Code'].map(mapping['Value'])

最终效果

填充后的DataFrame如下:

Code  Name  Value
0     1  Fred    2.0
1     2  Gary    2.0
2     1  Fred    2.0
3     2  Gary    2.0

补充说明

如果DataFrame中同一Code对应多组不同值,可先通过drop_duplicates('Code')确保每个Code只保留一组匹配值:

mapping = df.dropna().drop_duplicates('Code').set_index('Code')[['Name', 'Value']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:57:35