我使用Python 3.4.0和pandas == 0.16.2。我有足球隊的結果CSV文件,其中包含以下列:日期,在,目標.scored,goals.lost,結果。 'at'欄可以有三個值(H,A,N)中的一個,它們分別表示比賽是在球隊主場,場外還是在中立位置進行的。這裏有一個這樣的文件頭:熊貓弄亂DataFrame.from_csv上的日期列
date,at,goals.scored,goals.lost,result
16/09/2014,A,0,2,2
01/10/2014,H,4,1,1
22/10/2014,A,2,1,1
04/11/2014,H,3,3,0
26/11/2014,H,2,0,1
09/12/2014,A,4,1,1
25/02/2015,H,1,3,2
17/03/2015,A,2,0,1
19/08/2014,A,0,0,0
當我這個文件加載到pandas.DataFrame以通常的方式:
import pandas as pd
aTeam = pd.DataFrame.from_csv("teamA-results.csv")
前兩列「日期」和「在」似乎是看作一個和我得到這樣一個格式錯誤的數據幀:
aTeam.dtypes
at object
goals.scored int64
goals.lost int64
result int64
dtype: object
aTeam
at goals.scored goals.lost result
date
2014-09-16 A 0 2 2
2014-01-10 H 4 1 1
2014-10-22 A 2 1 1
2014-04-11 H 3 3 0
2014-11-26 H 2 0 1
...
的代碼塊不清楚地反映了腐敗,所以附接從Jupyter筆記本屏幕截圖:
正如你可以「在」看「日期」和列似乎被當作對象類型的一列:
aTeam['at']
date
2014-09-16 A
2014-01-10 H
2014-10-22 A
2014-04-11 H
2014-11-26 H
2014-09-12 A
起初,我以爲周圍沒有日期的報價爲導致這個問題,所以我添加了這些,但它根本沒有幫助,於是我引用了'at'列中的所有值,但仍未解決問題。我在CSV文件中嘗試了單引號和雙引號。有趣的是,在'date'和'at'的值周圍不使用引號或雙引號可以產生與上面相同的結果。單引號被解釋爲「在」列中的值的部分,但不是在日期列:
添加parse_dates=True
PARAM沒有足夠的數據幀產生任何影響。
當我在R中使用這些CSV文件時,我沒有遇到過這樣的問題。我將非常感謝這方面的任何幫助。
我不能再現你的錯誤1.不要使用'from_csv'它不再被更新,使用'pandas.read_csv',2.'from_csv'的'index_col'參數默認爲'index_col = 0'這就是爲什麼第一列被視爲索引。當我加載你的數據時,我得到的日期作爲索引不是'日期'和'在' – EdChum