Пример DataFrame
df = pd.DataFrame({
'Date': pd.DatetimeIndex(
['2017-01-01', '2017-04-01', '2017-04-05',
'2017-07-02', '2018-04-01', '2018-07-07',
'2017-01-01'], freq=None),
'value': [5, 6, 12, 15, 50, 11, 5]})
Решение
Создать словарь, содержащий год-месяц в качестве ключей (формат строки) и значения в видесписки соответствующих значений.
d = (df
.assign(year_month=df['Date'].dt.strftime('%Y/%m'))
.groupby('year_month')['value']
.apply(list)
.to_dict()
)
df = pd.concat([pd.Series(v, name=k)
for k, v in d.iteritems()], axis=1)[sorted(d)]
>>> df
2017/01 2017/04 2017/07 2018/04 2018/07
0 5 6 15 50 11
1 5 12 NaN NaN NaN