Создайте столбец, который показывает день месяца на основе столбца даты - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь вернуть день недели (т. Е. Понедельник = 1, вторник = 2 и т. Д. c) на основе столбца даты («Posting_date»). Я попытался для l oop, но ошибся:

#First date of table was a Sunday (1 March 2019) => so counter starts at 6
posting_df3['Day'] = (posting_df3['Posting_date'] - dt.datetime(2019,3,31)).dt.days.astype('int16')

# Start counter on the right date (31 March 2019 is a Sunday)
count = 7

for x in posting_df3['Day']:
    if count != 7:
        count = 1
    else:
        count = count + 1
    posting_df3['Day'] = count

Не уверен, есть ли другие способы сделать это. Прикрепленное изображение структуры моей базы данных:

      level_0 Posting_date Reservation date  Book_window     ADR  Day
0           9   2019-03-31       2019-04-01           -1  156.00    0
1          25   2019-04-01       2019-04-01            0  152.15    1
2          11   2019-04-01       2019-04-01            0  149.40    1
3          42   2019-04-01       2019-04-01            0  141.33    1
4          45   2019-04-01       2019-04-01            0  159.36    1
...       ...          ...              ...          ...     ...  ...
4278      739   2020-02-21       2019-04-17          310  253.44  327
4279      739   2020-02-22       2019-04-17          310  253.44  328
4280       31   2020-03-11       2019-04-01          345  260.00  346

Окончательный результат должен быть 2019-03-31. Столбец Day должен возвращать 7, поскольку это воскресенье, а столбец Day 2019-04-01 должен возвращать 1, так как его Понедельник и др. c

1 Ответ

0 голосов
/ 23 февраля 2020

Вы можете сделать это следующим образом

df['weekday']=pd.to_datetime(df['Posting_date']).dt.weekday+1

Вход

level_0     Posting_date    Reservation_date    Book_window     ADR     Day
0   9          3/31/2019    4/1/2019                     -1     156.00  0
1   25          4/1/2019    4/1/2019                      0     152.15  1
2   11          4/1/2019    4/1/2019                      0     149.40  1
3   42          4/1/2019    4/1/2019                      0     141.33  1
4   45          4/1/2019    4/1/2019                      0     159.36  1

Выход

level_0     Posting_date    Reservation_date    Book_window     ADR     Day     weekday
0   9         3/31/2019     4/1/2019                     -1     156.00  0       7
1   25         4/1/2019     4/1/2019                      0     152.15  1       1
2   11         4/1/2019     4/1/2019                      0     149.40  1       1
3   42         4/1/2019     4/1/2019                      0     141.33  1       1
4   45         4/1/2019     4/1/2019                      0     159.36  1       1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...