pandas to_datetime函数默认年份

时间:2014-06-18 15:03:30

标签: 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-06-10 10:10:10.300000

这意味着默认年份为1900,如何将其更改为2014年的第二个?

1 个答案:

答案 0 :(得分: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')

想不出更好的方法,但你可以将上面的内容包装在一个函数中来测试你是否需要设置年份