2012-06-12 34 views
1

我是pandas的新手,請原諒我,如果我忽略了一些明顯的東西,但我似乎無法找到答案以前的問題。使用Pandas導入數據表 - 異常:索引(列0)有重複的值[nan]

我試圖導入一個表到熊貓有一個任意數量的空格作爲分隔符。下面是一個數據示例:

*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) 

當我這樣做,我得到了以下錯誤:

File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 187, in read_csv return _read(TextParser, filepath_or_buffer, kwds)
File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 160, in _read return parser.get_chunk()
File "C:\Python27\lib\site-packages\pandas\io\parsers.py", line 613, in get_chunk raise Exception(err_msg)

Exception: Index (columns 0) have duplicate values [nan]

注意我已將索引列設置爲無。我已經嘗試使用第一列作爲索引列,並得到相同的錯誤。數據集中沒有空行或第一列中有重複的值。

+0

你使用的是什麼版本?嘗試使用0.8.0rc2 – RuiDC

+0

我有同樣的麻煩。使用0.73。出於某些原因,直到今天之前沒有任何問題。 – user1234440

回答

1

問題是,當您使用任意數量的空格作爲分隔符時,最終每行的列數不同。

在這種情況下,標題爲2010/03/23 17:01:00的此字段將被轉換爲兩列。既然標題和數據之間的列數是不同的,pandas假定它必須索引第一列。這就是你得到錯誤的原因。要解決這個問題,你可以嘗試指定一定數量的空白作爲分隔符。您還可以使用逗號或選項卡或其他可導致明確字段劃分的其他內容。

相關問題