如何使用Python清理Excel文件中的文本并解决pandas导出异常问题
问题原因
你当前的代码存在2个核心逻辑偏差:
- 仅读取了B列内容,原始A列的数字完全没有被加载到处理流程中,导出时自然无法保留,反而会被pandas默认生成的行序号覆盖
to_excel方法默认开启行索引、表头输出,才会出现B列第一行多出生成值的问题- 原有
replace写法是全单元格匹配,仅当单元格内容完全等于<br>时才会替换,若标签在文本中间无法生效
修正后代码
import pandas as pd file_name = "F:\Project\comments_all_sorted.xlsx" # 同时读取A、B两列,保留原始A列内容 df = pd.read_excel(file_name, header=None, index_col=None, usecols='A,B') # 针对B列(对应DataFrame索引为1的列)做子串替换,匹配所有位置的<br>标签 df[1] = df[1].str.replace('<br>', '', regex=False) # 导出时关闭行索引、表头输出,不生成额外内容 df.to_excel('output.xlsx', index=False, header=False)
修改说明
- 读取范围调整为
usecols='A,B',完整加载需要保留的原始两列内容 - 替换逻辑改用
str.replace,会匹配单元格内所有的<br>子串,符合文本清理需求 - 导出参数新增
index=False禁止输出生成行序号,header=False禁止输出生成列名,完全匹配原始文件的结构
内容的提问来源于stack exchange,提问作者Linda Brck
相关产品推荐
相关产品推荐

