Дата-время панд возвращает 1 за неделю года 2018-12-31 - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь получить год и неделю года для разбиения, например, «2018-52» или «2019-01» При использовании функций времени данных панд я получаю '2018-01' для '2018-12-31 19:35:59'.

Похоже, это связано с NSCalendar NSDateComponents weekofYear return 1 с датой 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.

1 Ответ

0 голосов
/ 10 января 2019

Это значение по умолчанию в качестве понедельника в качестве первой даты года и номера недели от 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...