2014-06-18 147 views
4

我對熊貓新手,當我運行下面的代碼,我得到了不同的結果:大熊貓to_datetime功能默認年

import pandas as pd 

ts = pd.to_datetime("2014-6-10 10:10:10.30",format="%Y-%m-%d %H:%M:%S.%f") 
print ts 
ts = pd.to_datetime("6-10 10:10:10.30",format="%m-%d %H:%M:%S.%f") 
print ts 

輸出是:

2014-06-10 10:10:10.300000 
1900-06-10 10:10:10.300000 

這意味着默認的一年1900年,我如何才能將其更改爲2014年的第二個?

回答

4

你不能寫日期時間的year屬性,因此最容易做的事情是使用replace

In [57]: 

ts = ts.replace(year=2014) 
ts 
Out[57]: 
Timestamp('2014-06-10 10:10:10.300000') 

另一種可能是當年以存儲爲一個字符串,並根據需要在前面加上這個,這個有一個好處是可以使用相同的格式字符串所有日期:

In [68]: 

this_year = str(datetime.datetime.now().year) 
datestr = this_year +'-' + '6-10 10:10:10.30' 
pd.to_datetime(datestr,format="%Y-%m-%d %H:%M:%S.%f") 
Out[68]: 
Timestamp('2014-06-10 10:10:10.300000') 

想不出更好的辦法,但你可以包裝上面的功能測試,如果你需要設定年