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

如何让tabula-py提取PDF表格时保留数字前导零(如007而非7)?

解决tabula-py提取PDF时保留带前导零数字的方法
  • 强制所有列以字符串类型读取
    在调用tabula.read_pdf()时,通过pandas_options指定dtype为str,让pandas直接将所有单元格内容按字符串加载,避免自动转换为数值类型:

    import tabula
    
    # 读取PDF并强制所有列保留字符串格式
    df = tabula.read_pdf("target_file.pdf", pages="all", pandas_options={'dtype': str})
    
  • 针对特定列补全前导零
    如果只需要修复部分列,可先提取数据,再将目标列转为字符串后用str.zfill()补零(需根据实际位数设置参数):

    # 假设需修复的列名为"code",固定为6位长度
    df['code'] = df['code'].astype(str).str.zfill(6)
    
    # 若位数不固定,可结合原始PDF中的格式规则,用自定义逻辑处理
    
  • 使用stream模式解析文本
    切换到stream模式(默认是lattice模式),按文本流解析PDF,更易保留原始文本格式,配合字符串类型读取效果更好:

    df = tabula.read_pdf("target_file.pdf", pages="all", stream=True, pandas_options={'dtype': str})
    
  • 读取原始JSON格式自行处理
    若上述方法仍有问题,可读取原始JSON格式的提取结果,直接获取单元格的原始文本内容:

    raw_data = tabula.read_pdf("target_file.pdf", pages="all", output_format="json")
    # 遍历raw_data中的表格和单元格,提取原始文本进行后续处理
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:03:16