pandas to_datetime函数默认年份

pandas to_datetime函数默认年份,pandas,Pandas,我是熊猫的新手,当我运行下面的代码时,我得到了一个不同的结果: 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

我是熊猫的新手,当我运行下面的代码时,我得到了一个不同的结果:

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年?

您无法写入datetime的
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')
想不出更好的方法,但如果需要设置年份,可以将上述内容封装在一个函数中进行测试