Как правильно сделать выборку дат в pandas.DatetimeIndex?

Нужна выборка по Date "неделя месяца", "день недели месяца" и "неделя квартала":

df = pd.read_csv('1.csv')
df.columns = ['Date', 'Change%']

Пример данных:

24-Jun-19   -0.52%
21-Jun-19   1.16%
20-Jun-19   4.25%
19-Jun-19   -0.51%
  • "Неделя месяца" это 1-я неделя всех месяцев (1), затем 2-я неделя всех месяцев (2) итд.
  • "День недели месяца" - понедельники всех месяцев (1), вторнки всех месяцев (2) итд (в файле даты с пн по пт).
  • "Неделя квартала" - 1-я неделя кварталов (1), 2-я неделя кварталов (2) итп.

Как сделать день недели понятно, например:

df['dayofweek'] = pd.DatetimeIndex(df['Date']).dayofweek

или день итп. Но того, что хочется сделать в pandas.DatetimeIndex не вижу.

В итоге получаем строки цифрами к каждой дате.

Данные, которые использую для анализа.

Пример:

Date    Change %    Неделя месяца   День недели месяца  Неделя квартала
3-Jun-19    -4.98%  1   1   6
4-Jun-19    1.13%   1   2   6
5-Jun-19    -2.16%  1   3   6
6-Jun-19    1.72%   1   4   6
7-Jun-19    2.63%   1   5   6
10-Jun-19   -1.58%  2   1   10
11-Jul-19   0.00%   2   7   10
12-Jul-19   -3.72%  2   8   10
13-Jul-19   2.23%   2   9   10
14-Jul-19   1.14%   2   10  10

Ответы (1 шт):

Автор решения: MaxU

Реализовал то, что смог понять из комментариев, а именно "Неделя_месяца" и "День_недели_месяца" (наименования столбцов от автора вопроса).

df = pd.read_csv('1.csv', parse_dates=[0])
df.columns = ['Date', 'Change%']

df["Неделя_месяца"] = (df["Date"].dt.day - 1) // 7 + 1

# в январе обозначили как 1-5, в феврале 6-10, март 11-15, 15-20, 20-25 
# и тп – пн-вт-ср-чт-пт 
df["День_недели_месяца"] = (df["Date"].dt.weekday + 1) % 5 + 5*(df["Date"].dt.month-1)

результат:

In [220]: df
Out[220]:
        Date Change%  Неделя месяца  День недели месяца  Неделя квартала  Неделя_месяца  День_недели_месяца
0 2019-06-03  -4.98%              1                   1                6              1                  26
1 2019-06-04   1.13%              1                   2                6              1                  27
2 2019-06-05  -2.16%              1                   3                6              1                  28
3 2019-06-06   1.72%              1                   4                6              1                  29
4 2019-06-07   2.63%              1                   5                6              1                  25
5 2019-06-10  -1.58%              2                   1               10              2                  26
6 2019-07-11   0.00%              2                   7               10              2                  34
7 2019-07-12  -3.72%              2                   8               10              2                  30
8 2019-07-13   2.23%              2                   9               10              2                  31
9 2019-07-14   1.14%              2                  10               10              2                  32
→ Ссылка