Создайте вектор даты, используя частоту "еженедельный рабочий день" - PullRequest
0 голосов
/ 31 августа 2018

Следующая строка выдает вектор даты с недельной периодичностью, используя воскресенье в качестве «отчетной» даты для каждой недели.

date_vector=pd.date_range(start='12/31/2006', end='01/31/2007', freq='W')

Результат выглядит следующим образом:

[Timestamp('2006-12-31 00:00:00', freq='W-SUN'), Timestamp('2007-01-07 00:00:00', freq='W-SUN'), Timestamp('2007-01-14 00:00:00', freq='W-SUN'), Timestamp('2007-01-21 00:00:00', freq='W-SUN'), Timestamp('2007-01-28 00:00:00', freq='W-SUN')]

Как вы можете сказать, каждая дата сообщается в воскресенье. Но я хочу, чтобы это было на каждую пятницу (конец рабочей недели). Возможно ли что-то подобное в пандах? Я искал различные частоты, доступные в документации Pandas для date_range ( здесь ), но не смог найти ничего подобного.

Мое предлагаемое решение было бы составлением списка, в котором для каждого элемента этого списка я бы выяснил, подходит ли оно к воскресенью, и, если это так, примените временную дельту -2, чтобы отложить ее до пятницы. Но не уверен, что это наиболее эффективно, и я хотел посмотреть, может ли кто-нибудь здесь предложить что-то лучшее.

Спасибо за ваше драгоценное время!

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Просто используйте 'W-FRI' для freq:

date_vector=pd.date_range(start='12/31/2006', end='01/31/2007', freq='W-FRI')

Результат:

DatetimeIndex(['2007-01-05', '2007-01-12', '2007-01-19', '2007-01-26'], dtype='datetime64[ns]', freq='W-FRI')

Проверьте эту документацию.

0 голосов
/ 31 августа 2018

Вы можете использовать freq='W-Fri'

date_vector=pd.date_range(start='12/31/2006', end='01/31/2007', freq='W-Fri')
date_vector
Out[1228]: DatetimeIndex(['2007-01-05', '2007-01-12', '2007-01-19', '2007-01-26'], dtype='datetime64[ns]', freq='W-FRI')
...