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

如何用Pandas加载字段换行的非固定宽度报表表格数据?

处理固定宽度且字段换行的文本数据加载问题

当固定宽度格式的文本中存在字段内容过长导致后续字段换行的情况时,直接使用pd.read_csv或pd.read_fwf会解析错误,需要先预处理文本合并换行内容,再进行加载。

解决方案步骤

  1. 预处理文本:识别并合并那些属于上一行的换行内容(这类行通常以空格开头)
  2. 使用read_fwf加载:对处理后的文本用固定宽度读取方法加载

完整代码示例

import pandas as pd
import io

# 测试文本数据
str_test = """
--------------------------------------------------------
 Name       Address         Email                  Phone    
---------------------------------------------------------   
 Andrew     Rye,Colorado    andrew_brendon_tye@hotmail.com
                                                   4574478  
 Eddie      White Sulphur Springs,West Virginia
                            eddie.t@gmail.com      4678990 
"""

# 1. 预处理文本:过滤无效行并合并换行内容
lines = [line.rstrip('\n') for line in str_test.splitlines() if line.strip() and not line.startswith('---')]
processed_lines = []
for line in lines:
    if line.startswith(' '):
        processed_lines[-1] += line
    else:
        processed_lines.append(line)
processed_text = '\n'.join(processed_lines)

# 2. 用read_fwf加载数据(可选手动指定列宽提升精准度)
# 自动识别列宽
df = pd.read_fwf(io.StringIO(processed_text), header=0)

# 或手动指定列宽(根据原表格实际宽度调整)
# df = pd.read_fwf(io.StringIO(processed_text), header=0, widths=[10, 20, 25, 10])

# 查看结果
print(df)

输出结果

Name                        Address                      Email    Phone
0  Andrew                Rye,Colorado  andrew_brendon_tye@hotmail.com  4574478
1   Eddie  White Sulphur Springs,West Virginia              eddie.t@gmail.com  4678990

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:10:27