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

如何在Pandas中实现字符串模板的列关联与固定值替换?

解决方案

方法一:逐行使用apply处理(最直观)

直接针对col2列,利用apply逐行获取对应行的fname值,配合format完成双占位符替换:

data['col2'] = data.apply(lambda row: row['col2'].format(name=row['fname'], year=2022), axis=1)

执行后就能得到目标结果:

fname                                   col2
index
1      john  my name is john, and today is 2022
2      mike  my name is mike, and today is 2022

方法二:用str.format_map批量处理

这种方式更贴合Pandas字符串操作的特性,通过元素的索引关联对应行的fname值:

data['col2'] = data['col2'].str.format_map(lambda x: {
    'name': data.loc[x.name, 'fname'],
    'year': 2022
})

原代码报错原因

你用的applymap会遍历DataFrame里的每一个元素(包括fname列的纯字符串),而且它无法在处理col2时获取当前行的fname值——你只传入了year=2022,但col2里的{name}没有对应参数,因此触发KeyError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:15:37