def str2dict(s):
    split = s.strip().split(',')
d = {}
for pair in split:
    k, v = [_.strip() for _ in pair.split(':')]
d[k] = v
return d
df.dictionary.apply(str2dict).apply(pd.Series)
Pandas, DataFrame: разделение одного столбца на несколько столбцов