Python 5 недель - PullRequest
       14

Python 5 недель

0 голосов
/ 03 декабря 2018

У меня есть список дат на 2-3 календарных года в Dataframe.Я хочу пометить их 5-недельным способом, как показано ниже:

    date         5week
    2015-01-01     1
    2015-01-02     1
     .             .
    2015-01-25     2
    2015-01-26     2
     .             .
    2015-02-22     3

или сделать интервалы по 5 недель.Какой самый элегантный способ сделать это?Я пробую цикл с некоторыми ошибками.код:

    for i in range(len(df)):
        if df.loc[i,'week'] < 5:
           df.loc[i,'5we']=0


        elif df.loc[i,'week']%5==0:
           df.loc[i,'5we']=count
              if (df.loc[i,'week']!=df.loc[i-1,'week']):
                    count+=1

        else:
           df.loc[i,'5we']=count

но я думаю, что это неуклюжий способ сделать это, даже если я заставлю его работать (это не в настоящее время).Пожалуйста, поделитесь своими экспертными знаниями.

1 Ответ

0 голосов
/ 03 декабря 2018

Я понял это.Это довольно просто.Сначала мне нужно извлечь неделю года из даты.Это можно сделать следующим образом:

    df['week']=df['date'].dt.strftime("%U")

    date       week
    2015-01-01  0
    2015-01-05  1

Теперь мне нужно просто разделить неделю года на 5 и привести результат к типу int вместо float:

    df['5week']=df['week'].astype(int)/5
    df['5week']=df['5week'].astype(int)
...