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

使用Pandas修改Excel列内容不生效的代码问题排查

Excel列读写修改时DataFrame修改不生效问题修复

核心错误点

  • 字符串替换操作未赋值回原列

    pandas的.str.replace()方法不会原地修改原Series,只会返回修改后的新对象。你代码中写的dfO["Store #"].str.replace("M","")仅生成了临时结果,没有重新赋值给dfO["Store #"]列,因此这步修改完全没有被保存到DataFrame中。
    修正写法:
    dfO["Store #"] = dfO["Store #"].str.replace("M","")

  • 保存文件时未屏蔽默认行索引

    你注释中提到的多余数字行号列,不需要通过drop方法删除,只要在调用to_excel时传入index=False参数即可,否则保存后的文件会新增一列pandas自动生成的索引值,和你预期的表结构不一致。
    修正写法:
    dfO.to_excel("Output" + date_time + ".xlsx", index=False)

修正后完整代码

from datetime import datetime
from openpyxl import load_workbook
import pandas as pd

# 获取当日日期
now = datetime.now()
date_time = now.strftime("%m%d%Y")

# 打开目标工作簿和工作表
wb = load_workbook("Output" + date_time + ".xlsx")
sheet = wb.active
sheetname ="Sheet1"

# 删除无用列压缩文件体积
sheet.delete_cols(19, 3)
sheet.delete_cols(13, 5)
sheet.delete_cols(7, 1)
sheet.delete_cols(4, 1)
sheet.delete_cols(1, 2)

# 保存openpyxl阶段的列删除修改
wb.save("Output" + date_time + ".xlsx")

# 读取处理后的文件为DataFrame
dfO = pd.read_excel('Output' + date_time + '.xlsx')
# 移除Store #列中的M字符,必须将结果赋值回原列
dfO["Store #"] = dfO["Store #"].str.replace("M","")

# 转换时间列为datetime格式
dfO['EstimatedDateStartUTC'] = pd.to_datetime(dfO.EstimatedDateStartUTC)

# 保存DataFrame,关闭索引写入避免多余列
dfO.to_excel("Output" + date_time + ".xlsx", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 22:51:07