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

使用pandas根据另一个DataFrame的行值填充指定列的值

实现方案

你可以先把存映射规则的第二个DataFrame转成字典,再通过pandas的map方法对第一列做值替换,完整代码如下:

import pandas as pd

# 构建你给出的两个示例DataFrame
df1 = pd.DataFrame({'first': ['bar', 'bar', 'foo', 'foo']})
df2 = pd.DataFrame({'bar': ['a'], 'foo': ['b']})

# 提取映射字典:把df2的第一行转为「列名:值」格式的字典
replace_map = df2.iloc[0].to_dict()
# 对first列执行映射替换
df1['first'] = df1['first'].map(replace_map)

执行后df1就是你需要的结果:

first
0     a
1     a
2     b
3     b

如果你的df1中存在df2里没有对应规则的类别,不想被替换成NaN,可以补充fillna保留原值,修改替换逻辑为:

df1['first'] = df1['first'].map(replace_map).fillna(df1['first'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 01:45:08