Проблемы с получением номера недели с началом недели в воскресенье в Python? - PullRequest
0 голосов
/ 06 ноября 2018

Я использую Python 3.6 и у меня проблемы с получением номеров недели, начиная с воскресенья.

Как найти номера недель, начиная с воскресенья в Python?

t1 = datetime.datetime.now()

t1.strftime("%U")

Например, на 09/16/2018 Sunday он должен дать WW38, а не WW37, который он дает сейчас.

Я вижу, что и "%U", "%V" и "%W" дают одно и то же.

Любая помощь будет оценена.

Небольшой фрагмент кадра данных, как показано ниже:

   time                   value
2018/09/15 1:08:19 PM   11.87
2018/09/16 6:23:17 PM   10.794
2018/09/16 6:37:48 PM   10.313
2018/09/16 6:54:14 PM   10.578
2018/09/16 6:58:24 PM   11.057
2018/09/19 9:08:24 PM   13.09

Каждый раз, когда я создаю столбец WW, проблема в том, что я хочу, чтобы WW начиналась в воскресенье, а не в понедельник.

Мой код:

ww_l =[]
for date in df['time']:  
  date_v = datetime.strptime(tv, "%Y-%m-%d %H:%M:%S")  
  curr_ww = datetime.date(date_v).strftime("%W")   
  ww_l.append(curr_ww)
df['WW'] = pd.DataFrame(ww_l)

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы можете установить первый день недели (который вы хотите установить как воскресенье), как показано ниже:

    import calendar
    calendar.setfirstweekday(calendar.SUNDAY)

Документацию можно найти здесь

0 голосов
/ 06 ноября 2018

Обойти можно было бы добавить день на df['time'], а затем получить неделю. Например, если вы находитесь в воскресенье, то добавьте день в понедельник и получите неделю понедельника, которую вы ищете, а в другие дни это ничего не меняет, например:

df['WW'] = (df['time'] + pd.Timedelta(days=1)).dt.week

РЕДАКТИРОВАТЬ : благодаря @pygo вы можете использовать pd.Dateoffset для добавления дня вместо pd.Timedelta, например:

df['WW'] = (df['time'] + pd.DateOffset(days=1)).dt.week

И вы получите, как ожидалось:

print (df)
                 time   value  WW
0 2018-09-15 13:08:19  11.870  37
1 2018-09-16 18:23:17  10.794  38
2 2018-09-16 18:37:48  10.313  38
3 2018-09-16 18:54:14  10.578  38
4 2018-09-16 18:58:24  11.057  38
5 2018-09-19 21:08:24  13.090  38
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...