2016-03-05 70 views
0

我試圖打印一列pandas.dataframe。但是,儘管我使用pandas.read_csv()中的names參數明確指定了列名,但這仍然失敗。儘管在read_csv處定義了名稱,但KeyError()

鑑於以下代碼:

data = pd.read_csv(filename, sep='\t', 
        names=['Symbol', 'Date', 'Type', 'Value'], 
        index_col=[0]) 
print(data) 

產生以下:

   Date  Type   Value 
Symbol          
benchmark 2011-12-01  dax 1.422847e+08 
benchmark 2011-12-02  dax 1.958363e+08 
benchmark 2011-12-05  dax 1.922807e+08 
benchmark 2011-12-06  dax 1.477339e+08 
benchmark 2011-12-07  dax 1.354372e+08 

但這: 打印(數據[ '日期'])

產生以下:

KeyError: 'Date' 

從我可以告訴我做的事情完全一樣,在第123頁由麥金尼Python for Data Analysis中所述。除了我沒有得到任何輸出,除了這個錯誤。

數據的格式如下:

Symbol\t2015-01-01\tType\tFloat_Value 

我缺少什麼?

+0

什麼呢'data.columns.tolist()'說明了什麼? – EdChum

+0

'['2011-12-01','dax','142284736']' - 這很奇怪,因爲我認爲傳遞'names'負責設置列名? – nlsdfnbch

+0

糾錯:顯示'['Date','Type','Value']';我有一些其他的測試代碼在運行之前,我沒有通過'名稱'。 – nlsdfnbch

回答

0

確保你沒有在列名

空間,你可以嘗試使用sep='\s+'代替:

data = pd.read_csv(filename, sep='\s+', 
        names=['Symbol', 'Date', 'Type', 'Value'], 
        index_col=[0]) 
相關問題