1

我是新手,pandas所以如果我忽略了一些明显的东西,请原谅我,但我似乎无法在以前的问题中找到答案。

我正在尝试将一个表导入到 Pandas 中,该表具有任意数量的空格作为分隔符。以下是数据示例:

*PRODUCT : Backscatter Ratio - 1064.0 nm ^

Altitude                  2010/03/23 17:01:00       2010/03/23 17:03:00       ...

1.50                      1                         1                         ...

4.50                      1                         1                         ...

.                         .                         .

.                         .                         .

.                         .                         .*

表的实际大小是 1310 列 x 6009 行。我不一定要使用固定宽度解析器,因为将来这些表格的间距可能会改变,所以我使用了以下内容:

df = pandas.io.parsers.read_csv(filepath,sep='s*',header=2,index_col=None, skiprows=2)

当我这样做时,我收到以下错误:

文件“C:\Python27\lib\site-packages\pandas\io\parsers.py”,第 187 行,在 read_csv 返回 _read(TextParser, filepath_or_buffer, kwds)
文件“C:\Python27\lib\site-packages\pandas \io\parsers.py”,第 160 行,在 _read 返回 parser.get_chunk()
文件“C:\Python27\lib\site-packages\pandas\io\parsers.py”,第 613 行,在 get_chunk 中引发 Exception(err_msg )

例外:索引(第 0 列)具有重复值 [nan]

请注意,我已将索引列设置为无。我已经尝试使用第一列作为索引列并得到相同的错误。数据集中没有空行或第一列中没有重复值。

4

1 回答 1

1

问题是,当您使用任意数量的空格作为分隔符时,每行的列数都会不同。

在这种情况下,标题中的这个字段2010/03/23 17:01:00,将被转换为两列。既然标题和数据之间的列数不同,pandas 假设它必须索引第一列。这就是您收到错误的原因。要修复它,您可以尝试指定一定数量的空格作为分隔符。您还可以使用逗号或制表符或其他会导致明确的字段描述的东西。

于 2012-10-18T18:21:53.973 回答