2014-04-25 68 views
2

所以我的問題是當我第一次運行這個代碼,它正確地給我結果,即2013-01-23的格式。使用Pandas在Python中解析日期

但是,當我試圖下次運行此代碼時,我沒有得到正確的結果(給出輸出爲23/01/2013)。

第二次爲什麼不同?

from pandas import * 
fec1 = read_csv("/user_home/w_andalib_dvpy/sample_data/sample.csv") 

def convert_date(val): 
    d, m, y = val.split('/') 
    return datetime(int(y),int(m),int(d)) 

# FECHA is the date column name in raw file. format: 23/01/2013 
fec1.FECHA.map(convert_date) 
fec1.FECHA 
+1

你能提供sample.csv嗎? – waitingkuo

+0

'pd_to_datetime(fec1.FECHA,format =「%d /%m /%Y」)'或at at\ n 85678367,52,1/4/2013,220242,0 – user3252809

+1

'一次在讀取文件時:'pd.read_csv(...,parse_dates = ['FECHA'],dayfirst = True)' – joris

回答

0

與大熊貓解析日期可以在你讀的CSV時通過傳遞parse_dates=['yourdatecolumn']date_parser=convert_datepandas.read_csv method完成。

這樣做是一個比加載數據更快的操作,然後解析日期。

當您執行兩次相同的操作時,獲得不同輸出的原因可能是由於在解析日期時,將D/M/Y作爲輸入,但將Y/M/D作爲輸出。它基本上每次都會翻轉D和Y.