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

DataFrame中使用.replace()无法替换分号问题求助

解决DataFrame列中分号替换无效的问题

嘿,我来帮你搞定这个替换无效的问题!你的代码之所以没效果,主要有两个核心原因:

问题根源

  1. Python字符串是不可变类型:i.replace(';', ' ')会生成一个新的字符串,但你只是执行了这个操作,没有把新字符串存回原DataFrame的dateTime列里,原数据自然不会有任何变化。
  2. 用for循环遍历pandas列效率极低:pandas是为矢量化操作设计的,循环处理单个元素不仅速度慢,还容易出现遗漏赋值的问题。

正确解决方案(强烈推荐)

直接使用pandas内置的str.replace方法,这是专门针对字符串列的矢量化操作,一行代码就能彻底解决问题:

excel_file['dateTime'] = excel_file['dateTime'].str.replace(';', ' ')

这个方法会自动遍历dateTime列的每一个元素,执行分号替换为空格的操作,并且直接把结果赋值回原列,真正修改DataFrame的原始数据。

如果非要用循环实现(不推荐)

如果你坚持想用循环完成(不建议在大数据量场景下使用),需要通过索引把替换后的值明确存回DataFrame:

for idx, value in excel_file['dateTime'].items():
    excel_file.loc[idx, 'dateTime'] = value.replace(';', ' ')

替换后效果示例

完成操作后,你的dateTime列数据会变成:

11-06-18 18-06-18 18-09-18 14-06-18 20-06-18 13-06-18 21-06-18 19-06-18 19-06-18 20-06-18 11-06-18 22-06-18

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:33:36