2016-10-04 62 views
1

我想對熊貓功能做一個簡單的測試來處理日期&格式。爲此,我創建了一個像下面這樣的數據框。 :以mm-dd-YY和YY-mm-dd格式在大熊貓上處理日期

df = pd.DataFrame({'date1' : ['10-11-11','12-11-12','10-10-10','12-11-11', 
         '12-12-12','11-12-11','11-11-11']}) 

這裏我假設值是日期。我使用熊貓的to_datetime函數將它轉換成適當的格式。

df['format_date1'] = pd.to_datetime(df['date1']) 
print(df) 

Out[3]: 
     date1 format_date1 
0 10-11-11 2011-10-11 
1 12-11-12 2012-12-11 
2 10-10-10 2010-10-10 
3 12-11-11 2011-12-11 
4 12-12-12 2012-12-12 
5 11-12-11 2011-11-12 
6 11-11-11 2011-11-11 

這裏,熊貓正在讀取數據幀爲 「MM/DD/YY」 的日期和它在本機格式轉換(即YYYY/MM/DD)。我想檢查Pandas是否可以接受我的輸入,指出日期格式實際上是「YY/MM/DD」,然後讓它轉換成其原始格式。這將更改行號的值。5.爲此,我運行了以下代碼。但它給了我一個錯誤。

df3['format_date2'] = pd.to_datetime(df3['date1'], format='%Y/%m/%d') 

ValueError: time data '10-10-10' does not match format '%Y/%m/%d' (match) 

我見過那種解決方案here。但我希望得到一個簡單而清晰的答案。

+0

如果您想以「year」的形式解析日期,您可以這樣做:'df ['format_date1'] = pd.to_datetime(df ['date1'], yearfirst = True)' –

回答

1

%Y在格式說明符中採用4位數年份(即2016)。 %y需要2位數的年份(即16,意思是2016年)。將%Y更改爲%y,它應該可以工作。

此外,您的格式說明符中的破折號不存在。您需要將您的格式更改爲%y-%m-%d

+0

點擊查看'format'的概述(包含所有可能的選項)[here](http://strftime.org/) – Mathias711