我是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。我已经尝试使用第一列作为索引列并获得相同的错误。数据集中没有空行或第一列中没有重复的值。
答案 0 :(得分:1)
问题在于,当您使用任意数量的空格作为分隔符时,每行最终会有不同数量的列。
在这种情况下,标题2010/03/23 17:01:00
中的此字段将转换为两列。现在,标题和数据之间的列数不同,pandas假定它必须索引第一列。这就是你得到错误的原因。要解决此问题,您可以尝试将一定数量的空格指定为分隔符。您还可以使用逗号或制表符或其他可以导致明确字段描述的内容。