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

如何用Python Pandas将PDF转CSV?解决时间列AM换行问题

解决PDF转CSV时Time列AM/PM被拆分的问题

PDF文本提取时,因原文档布局问题,Time列的AM/PM后缀会被单独拆分为下一行,导致时间格式不完整。可以通过以下修改后的代码修复这个问题,同时完成PDF到CSV的转换:

import re
import pdfplumber
import pandas as pd

file = "Battery Voltage.pdf"
lines = []

with pdfplumber.open(file) as pdf:
    for page in pdf.pages:
        text = page.extract_text()
        for line in text.split('\n'):
            stripped_line = line.strip()
            # 判断当前行是否是AM/PM后缀,是的话合并到上一行
            if re.fullmatch(r'(AM|PM)', stripped_line, re.IGNORECASE):
                if lines:
                    lines[-1] = f"{lines[-1]} {stripped_line}"
                continue
            lines.append(stripped_line)

# 提取表头与数据(根据实际PDF列调整)
columns = ["Time", "Battery Voltage (V)"]
data = []
header_skipped = False

for line in lines:
    # 跳过表头行
    if not header_skipped:
        header_skipped = True
        continue
    # 用至少两个空格拆分列,避免时间内的空格干扰
    row_parts = re.split(r'\s{2,}', line)
    if len(row_parts) == len(columns):
        data.append(dict(zip(columns, row_parts)))

# 生成CSV文件
df = pd.DataFrame(data)
df.to_csv("battery_voltage.csv", index=False)
print("转换完成,已生成battery_voltage.csv")

关键处理逻辑:

  • 识别单独成行的AM/PM,将其合并到上一行的时间字段末尾,修复完整时间格式
  • 使用多空格作为列分隔符拆分每行数据,避免时间中的空格导致列拆分错误
  • 跳过表头行后,将整理好的行数据转为DataFrame,最终导出为CSV

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:55:23