Вы можете использовать Series.dt.to_period
для периодов месяца или квартала:
df = pd.DataFrame({'event':['01-01-2015','02-05-2015','01-08-2016','01-11-2015']})
df['event'] = pd.to_datetime(df['event'], dayfirst=True)
df['months'] = df['event'].dt.to_period('M')
df['quarters'] = df['event'].dt.to_period('Q')
print (df)
event months quarters
0 2015-01-01 2015-01 2015Q1
1 2015-05-02 2015-05 2015Q2
2 2016-08-01 2016-08 2016Q3
3 2015-11-01 2015-11 2015Q4
Если нужны строки в пользовательских форматах, добавьте strftime
:
df['months'] = df['event'].dt.strftime('%m-%Y')
df['quarters'] = df['event'].dt.to_period('Q').dt.strftime('%q-%Y')
print (df)
event months quarters
0 2015-01-01 01-2015 1-2015
1 2015-05-02 05-2015 2-2015
2 2016-08-01 08-2016 3-2016
3 2015-11-01 11-2015 4-2015