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

Pandas导入CSV时因列值含空格导致Test Results、S/N列数据读取不全的问题

Pandas导入带内嵌空格的CSV内容不完整的解决方法

你当前使用的基础pd.read_csv()其实已经完整读取到了CSV中的所有单元格内容,出现“导入不完整”的视觉效果,是两个原因叠加导致的:

  • CSV内Test Results、S/N两列的字符串本身被插入了大量无意义的分隔空格,不是连续的有效内容
  • Pandas默认的控制台打印规则会自动截断长字符串、限制列展示宽度,因此print输出里只能看到两列的开头1-2个字符,容易误以为数据没有读全

第一步:验证CSV读取的完整性

运行以下代码,直接提取指定单元格的原始内容,绕开显示截断规则做校验:

scores_df = pd.read_csv('20210112.csv')
# 直接查看第一行的两列完整原始值
print("Test Results列原始值:", scores_df.loc[0, 'Test Results'])
print("S/N列原始值:", scores_df.loc[0, 'S/N'])

如果运行后能看到O K 、2 1 B . A 1 5 4 . 0 1 6 2 1 6 9 这类完整带空格的字符串,就说明CSV解析过程没有丢失数据,不需要反复调整读取参数。

第二步:批量清理两列的多余空格

直接对目标两列做批量空格移除,把内嵌的所有无意义空格替换为空值:

# 指定需要清理的列
clean_cols = ['Test Results', 'S/N']
# 批量替换列内所有空格
scores_df[clean_cols] = scores_df[clean_cols].apply(
    lambda col: col.str.replace(' ', '', regex=False)
)

处理完成后,两列的内容会恢复成预期的有效格式:

  • 原来的O K 会变成无空格的OK
  • 原来的2 1 B . A 1 5 4 . 0 1 6 2 1 6 9 会变成连续的设备编号21B.A154.0162169

第三步:调整显示规则,避免打印时内容截断

如果清理完数据后,print输出仍出现列内容截断的问题,可以手动调整Pandas的显示参数,关闭长字符串截断规则:

# 设置列最大显示宽度为无限制,展示完整字符串内容
pd.set_option('display.max_colwidth', None)
# 重新打印即可看到全部完整列值
print(scores_df)

注意:原CSV是带双引号包裹的标准结构化格式,read_csv()的默认参数就可以正确识别带内嵌空格的引号字段,不需要额外加分隔符、引号解析配置,避免因为不必要的参数调整引入新的读取错误。

内容的提问来源于stack exchange,提问作者tthammak-DE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 01:24:03