pandas - как нарезать фрейм данных на основе столбца с номером недели в году? - PullRequest
1 голос
/ 11 марта 2020

У меня есть датафрейм, который выглядит следующим образом:

>>> my_df.loc[600:614,'Week-Year']
600    39-2018
601    39-2018
602    40-2018
603    40-2018
604    41-2018
605    41-2018
606    42-2018
607    42-2018
608    43-2018
609    43-2018
610    44-2018
611    44-2018
612    45-2018
613    45-2018
614    46-2018

Этот столбец в основном представляет собой «номер недели года - года». Теперь я хочу разделить этот фрейм данных с определенной недели до определенной недели.

Вот что я попробовал:

>>> end_date = datetime(2013, 4, 30)
>>> my_df.loc[(my_df['Week-Year'] <= end_date.strftime('%M-%Y'))]

Но это ничего не возвращает. Итак, как мне это сделать?

1 Ответ

1 голос
/ 11 марта 2020

Я думаю, что здесь необходимо преобразовать Week-Year в дату:

d = pd.to_datetime(my_df['Week-Year'].add('_1'), format='%W-%Y_%w')
#https://stackoverflow.com/a/54033252/2901002
#ISO week numbers (ISO 8601 week definitions)
d = pd.to_datetime(my_df['Week-Year'].add('_1'), format='%V-%G_%u')

, а затем выполнить фильтрацию boolean indexing:

df = my_df[d <= end_date]
...