【发布时间】:2013-08-01 15:01:30
【问题描述】:
我正在尝试使用来自 panda 的 read_csv 在 Python 中读取以空格分隔的文件。 它通过指定分隔符 =“”来工作。当列中存在某些缺失值时会出现问题,因为它通过将缺失值视为分隔符来忽略缺失值。
有没有办法解决这个问题?
1600 1141.0000 020006 600 1141.0000 69.0000 OAUC 0.0000
1 1070.5000 020032 1 1070.5000 400.0000 0.0000
您可以看到值 OAUC 的列中存在缺失值。 列之间的间距不均匀,这使其变得更加困难。此外,列是固定的,因此可能会发现缺少某些值,但还无法找出缺少的值。
【问题讨论】:
-
你说列之间的间距不均匀,但是当缺少一个时,值之间并不总是有更多的空间。
-
我建议先使用命令行工具或 python 清理此文件,然后再尝试将其作为结构化数据读取。 (emacs org 模式会创造奇迹!)你试过
pandas.read_fwf来读取固定宽度的文件吗? -
@Justin 是的,我确实尝试过使用 pandas.read_fwf 但所有列都没有固定宽度,特别是带有数字的列,正如您在第一列中看到的那样,值可以是 1600或 1 或 1600000。
-
但每列的末端对齐,因此您可以选择最大宽度小于到下一个非空格字符的距离。但是,事先在文件上使用一些命令行工具或文本编辑器会更干净,恕我直言
标签: python pandas whitespace missing-data