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

Python写入Excel时处理数值分隔符及str.replace报错问题

问题报错原因

你触发的'str' object has no attribute 'str'报错,是因为.str是pandas库中Series/DataFrame对象的专属字符串访问接口,Python原生字符串类型直接调用内置的.replace()方法即可完成字符替换,不需要额外加.str前缀。

数值格式转换实现方案

你的转换规则可以按优先级拆分处理,注意表头行不需要做数值转换,避免破坏原有列名:

  • 带逗号的数值(如15,300):可按需选择保留原格式,或替换逗号为点得到15.3
  • 仅带小数点、无逗号的数值(如1.022):直接移除小数点得到1022

修改后的核心写入代码如下:

row = 0
column = 0
b = x[:(len(x)-1)]    
for i in b:
    c = i.split()
    column = 0
    for item in c:
        # 表头行(第0行)直接写入,不做格式处理
        if row == 0:
            worksheet.write(row, column, item)
        else:
            processed_val = item
            # 处理带逗号的数值
            if "," in processed_val:
                # 若需要保留"15,300"格式,注释掉下一行替换逻辑即可
                processed_val = processed_val.replace(",", ".")
            # 处理仅带小数点的数值
            elif "." in processed_val:
                processed_val = processed_val.replace(".", "")
            worksheet.write(row, column, processed_val)
        column += 1
    row += 1
workbook.close()
补充注意事项

如果表格第一列是编号类文本(如你的表头第一列是Mak.No.),存在带点但不需要转换的情况,可以增加列号判断,仅对指定数值列执行转换逻辑,避免误改文本内容。

内容的提问来源于stack exchange,提问作者B. Ozen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:12:30