如何在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
相关产品推荐
相关产品推荐

