Pandas代码运行无报错但未修改目标Excel文件的解决方法
问题原因
你的代码没有修改原Excel文件的核心原因是:所有计算操作都只作用于内存中加载的pandas DataFrame对象,没有执行将DataFrame写回磁盘文件的步骤。pd.read_excel()只是把文件内容读取到内存生成副本,后续给DataFrame新增polarity scores列的操作,都只是修改内存里的副本,不会自动同步到原磁盘文件,必须主动调用写入方法才能把修改落盘。
修复方法
在极性得分计算完成后,添加to_excel()方法把修改后的DataFrame写回文件即可,修复后的完整代码如下:
import pandas as pd from nltk.sentiment.vader import SentimentIntensityAnalyzer dataset = pd.read_excel('file_path') sia = SentimentIntensityAnalyzer() dataset['polarity scores'] = dataset['column_title'].apply(lambda x: sia.polarity_scores(str(x))['compound']) # 新增写入操作,index=False用于取消导出pandas默认的行索引列,避免破坏原表结构 dataset.to_excel('file_path', index=False) print("done")
补充说明
- 写入文件前请确保目标Excel没有被WPS、Office等程序打开占用,否则会触发权限错误导致写入失败
- 首次测试时建议不要直接覆盖原文件,可以把
to_excel的路径改为新文件名(比如带极性得分的结果.xlsx),确认计算结果符合预期后再替换原文件,避免数据丢失 - 如果原Excel包含多个工作表,直接用
to_excel写入会覆盖整个文件、丢失其他工作表内容,这种场景需要用openpyxl引擎以追加模式写入指定工作表
内容的提问来源于stack exchange,提问作者Tristan Merkley
相关产品推荐
相关产品推荐

