Используйте DatetimeIndex.to_period
:
pd.DatetimeIndex(df['date']).to_period('M').unique()
# PeriodIndex(['2012-01', '2016-12'], dtype='period[M]', name='date', freq='M')
Если нужны названия месяцев, используйте strftime
:
df['date'].dt.strftime('%Y-%b').unique()
# array(['2012-Jan', '2016-Dec'], dtype=object)
Если необходим формат серии, используйте drop_duplicates
:
df['date'].dt.strftime('%Y-%b').drop_duplicates()
0 2012-Jan
18 2016-Dec
Name: date, dtype: object