Создать FY на основе диапазона дат в пандах - PullRequest
0 голосов
/ 13 ноября 2018

Я работаю на свидания и FY. Мой рабочий набор данных содержит десять тысяч строк с датой. Я хочу создать новую колонку для обозначения сезона или финансового года. Пример кадра данных выглядит следующим образом:

df = pd.DataFrame()
df['date'] = ['10/08/2018','12/09/2018','15/08/2017','16/05/2018']

я хотел создать новый столбец сезон на основе диапазона дат. например, если месяц с августа по июнь, это будет считаться сезоном. Это означает, что дата варьируется от 08.01.2005 до 30.06.2006, сезон будет 2005-06.

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

  date      season
10/082018   2018-19
12/09/2018  2018-19
15/08/2017  2017-18
16/05/2018  2017-18

Ниже мой ожидаемый результат:

enter image description here

Как бы я определил диапазон и время года? Спасибо,

Zep.

1 Ответ

0 голосов
/ 13 ноября 2018

Вы можете использовать условие, основанное на месяце, и объединить годовую часть даты после преобразования в строку

df.date = pd.to_datetime(df.date, format = '%d/%m/%Y')
cond = df.date.dt.month >=8
df['season'] = np.where(cond, df.date.dt.year.apply(str) + '-' + (df.date.dt.year+1).apply(str).str[2:], (df.date.dt.year-1).apply(str) + '-' + df.date.dt.year.apply(str).str[2:])


    date    season
0   2018-08-10  2018-19
1   2018-09-12  2018-19
2   2017-08-15  2017-18
3   2018-05-16  2017-18
...