Я не трачу много времени на панд, потому что я не уверен, что это лучший ответ, но вы можете использовать понимание с компрессом:
>>> from itertools import compress
>>> import pandas as pd
>>> df = pd.DataFrame(data=[['a',1,0],['b',0,1],['c',1,1],['d',1,0]],columns=['type','jan','feb'])
>>> df.head()
type jan feb
0 a 1 0
1 b 0 1
2 c 1 1
3 d 1 0
>>> months = ['jan','feb']
>>> [{df.loc[key]['type']: list(compress(months, [v for v in df.loc[key, months]]))} for key in df.index]
[{'a': ['jan']}, {'b': ['feb']}, {'c': ['jan', 'feb']}, {'d': ['jan']}]
Если есть дополнительные месяцы, вы могли быдобавьте их в список months
.