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

使用tabula-py提取PDF表格时列内换行致格式异常的求助

解决Tabula-Py提取表格列内换行导致CSV格式异常的问题

问题原因

表格第二列里的换行符(\n或\r\n)会打乱CSV的行分隔规则,Excel打开时会把单元格内的换行当成新行,直接导致格式错乱。

直接解决方案

在保存CSV之前,批量清除DataFrame所有单元格里的换行符,把换行替换成空格(或者你需要的其他分隔符)。修改后的代码如下:

import tabula
import pandas as pd

dfs = tabula.read_pdf(arquivo_nome, pages="all")

for i, df in enumerate(dfs):
    # 遍历所有单元格,清除换行符
    df = df.applymap(lambda x: x.replace('\n', ' ').replace('\r', '') if isinstance(x, str) else x)
    df.to_csv(f"page_{i+1}.csv", index=False)

针对性优化

  • 如果只需要处理特定列(比如第二列),可以不用全表遍历,直接定位列处理,效率更高:
    # 假设第二列的列名为'B',如果是默认索引列用df.iloc[:, 1]
    for i, df in enumerate(dfs):
        df['B'] = df['B'].apply(lambda x: x.replace('\n', ' ').replace('\r', '') if isinstance(x, str) else x)
        df.to_csv(f"page_{i+1}.csv", index=False)
    
  • 如果只有特定页面(比如30页及之后)有问题,也可以只提取这些页面处理:
    dfs = tabula.read_pdf(arquivo_nome, pages="30-all")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:55:19