如何将pandas DataFrame中的数值型行值替换为指定字符串?
问题根因
你当前替换失败的核心原因是类型不匹配:site列存储的13.0是浮点数类型,但你在replace方法中传入的匹配规则是字符串'13.0',pandas的替换操作会严格校验值和类型,两者不一致自然无法命中替换逻辑,和你是否使用inplace参数没有关系。
可行解决方案
下面是几种可直接使用的写法:
- 直接匹配浮点数替换(最推荐,不需要修改列原有类型)
df1['site'] = df1['site'].replace(13.0, 'west')
如果需要同时替换多个数值,用字典映射的写法更易维护:
replace_rule = { 13.0: 'west', # 可继续追加其他需要替换的映射关系 # 14.0: 'east' } df1['site'] = df1['site'].replace(replace_rule)
- 先转列类型为字符串再替换(适合有统一字符串处理需求的场景)
# 先把site列转为字符串类型,再匹配字符串'13.0'完成替换 df1['site'] = df1['site'].astype(str).replace('13.0', 'west')
内容的提问来源于stack exchange,提问作者user2100039
相关产品推荐
相关产品推荐

