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

如何在Pandas DataFrame中修改指定ID的姓名?代码问题求助

问题分析与解决

你的代码问题出在替换姓名的逻辑上:字符串类型不支持-减法操作,df['name'] - df['name']这种写法在Pandas里要么报错,要么返回不符合预期的结果——实际执行时大概率被解析为无效操作,最终变成df['name'] + newName,所以原姓名bob和新姓名tom被拼接成了bobtom,也就是你看到的“追加”效果。

正确代码修改

直接将匹配到的行的name列赋值为新姓名即可,无需多余的字符串运算:

def rename(self):
    id = '1'
    person = df.loc[df['id'] == id]
    print(person)
    newName = 'tom'
    # 直接赋值新姓名
    df.loc[df['id'] == id, 'name'] = newName

验证结果

输入数据:

id  name  age
1   bob   40

执行修改后的代码后,输出符合预期:

id  name  age
1   tom   40

如果坚持要用字符串拼接的方式(完全没必要,仅作演示),可以写成:

df.loc[df['id'] == id, 'name'] = '' + newName

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:55:22