【问题标题】:pandas datetime returns 1 for weekofyear of 2018-12-31pandas datetime 为 2018-12-31 的 weekofyear 返回 1
【发布时间】:2019-06-05 12:27:13
【问题描述】:

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

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

但我仍然希望可以使用 pandas datetime 解决这个问题,而不需要像对 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 都可以。

【问题讨论】:

    标签: pandas datetime time


    【解决方案1】:

    默认为星期一作为一年中的第一个日期和从 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-05
      • 2021-12-07
      • 2016-07-22
      • 2014-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多