使用Pandas导入数据表 - 例外:索引(列0)具有重复值[nan]

时间:2012-06-12 21:17:35

标签: io pandas

我是pandas的新手,所以如果我忽略了一些显而易见的事情,请原谅我,但我似乎无法在之前的问题中找到答案。

我正在尝试将表导入到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列乘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中       return _read(TextParser,filepath_or_buffer,kwds)
  文件“C:\ Python27 \ lib \ site-packages \ pandas \ io \ parsers.py”,第160行,   _读       return parser.get_chunk()
  文件“C:\ Python27 \ lib \ site-packages \ pandas \ io \ parsers.py”,第613行,   get_chunk       提出异常(err_msg)

     

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

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

1 个答案:

答案 0 :(得分:1)

问题在于,当您使用任意数量的空格作为分隔符时,每行最终会有不同数量的列。

在这种情况下,标题2010/03/23 17:01:00中的此字段将转换为两列。现在,标题和数据之间的列数不同,pandas假定它必须索引第一列。这就是你得到错误的原因。要解决此问题,您可以尝试将一定数量的空格指定为分隔符。您还可以使用逗号或制表符或其他可以导致明确字段描述的内容。