熊猫日期时间在2018-12-31的一周中返回1

时间:2019-01-10 15:33:23

标签: pandas datetime time

我试图获取分区的年份和年份,例如“ 2018-52”或“ 2019-01” 使用pandas datatime函数时,对于'2018-12-31 19:35:59'我得到的是'2018-01'。

这似乎与NSCalendar NSDateComponents weekofYear return 1 with date 2014-12-31

有关

但是我仍然希望可以用熊猫的日期时间来解决这个问题,而不会破坏weekofyear == 1的特殊处理。

import pandas as pd
date = pd.to_datetime('2018-12-31 19:35:59')
print('%d-%d' % (date.year, date.weekofyear))
>> 2018-01

2018-52和2019-01都很好。

1 个答案:

答案 0 :(得分:0)

这默认是星期一,作为00-53的年和周的第一个日期,您应该使用符号'U'

pd.Series(date).dt.strftime('%Y-%U')
Out[170]: 
0    2018-52
dtype: object

这将把2019年的第一天变成2019-00

pd.Series(pd.to_datetime('2019-01-01 19:35:59')).dt.strftime('%Y-%U')
Out[171]: 
0    2019-00
dtype: object