pandas datetime返回2018-12-31这一周的1

pandas datetime返回2018-12-31这一周的1,pandas,datetime,time,Pandas,Datetime,Time,我正在尝试获取划分的年份和周,例如“2018-52”或“2019-01” 当使用pandas数据时间函数时,我得到了“2018-12-31 19:35:59”的“2018-01” 这似乎与 但我仍然希望这可以通过pandadatetime解决,而不需要黑客对weekofyear==1的特殊处理 import pandas as pd date = pd.to_datetime('2018-12-31 19:35:59') print('%d-%d' % (date.year, date.week

我正在尝试获取划分的年份和周,例如“2018-52”或“2019-01” 当使用pandas数据时间函数时,我得到了“2018-12-31 19:35:59”的“2018-01”

这似乎与

但我仍然希望这可以通过pandadatetime解决,而不需要黑客对
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都很满意。

这是一个默认值,周一是一年中的第一个日期,周数从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

默认情况下,星期一为一年中的第一个日期,周数为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