Разделить/взорвать столбец словарей на отдельные столбцы с пандами

| | | | | | | | | | | | | | | |

У меня есть данные, сохраненные в базе данных postgreSQL. Я запрашиваю эти данные с помощью Python2.7 и превращаю их в Pandas DataFrame. Однако в последнем столбце этого фрейма данных есть словарь значений. DataFrame df выглядит следующим образом:

Идентификатор станции Pollutants 8809 {"a": "46", "b": "3", " ;c": "12"} 8810 {"a": "36", "b": "5", "c": "8"} 8811 {"b": 2", "с": "7"} 8812 {"с": "11"} 8813 {"а": "82", "с": "15"} 

Мне нужно разбить этот столбец на отдельные столбцы, чтобы DataFrame `df2 выглядел так:

Идентификатор станции abc 8809 46 3 12 8810 36 5 8 8811 NaN 2 7 8812 NaN NaN 11 8813 82 NaN 15 

Основная проблема заключается в том, что списки имеют разную длину. Но все списки содержат только вверх одним и тем же трем значениям: "a", "b" и "c". И они всегда появляются в одном и том же порядке ("a" во-первых, "b" во-вторых, "c" в-третьих). p>

Следующий код ИСПОЛЬЗУЕТСЯ для работы и возвращает именно то, что я хотел (df2).

objs = [df, pandas.DataFrame(df["Уровни загрязнения"].tolist()).iloc[:, :3]] df2 = pandas.concat(objs, axis=1 ).drop("Pollutant Levels", axis=1) print(df2) 

Я запускал этот код только на прошлой неделе, и он работал нормально. Но теперь мой код не работает, и я получаю эту ошибку из строки [4]:

IndexError: out-of-bounds on slice (end) 

Я не внес никаких изменений в код, но теперь получаю сообщение об ошибке. Я чувствую, что это связано с тем, что мой метод не является надежным или правильным.

Любые предложения или рекомендации о том, как разделить этот столбец списков на отдельные столбцы, будут очень оценены!

EDIT: Я думаю, что методы .tolist() и .apply не работают с моим кодом, потому что это одна строка Unicode, т.е.:

#My data format u{" a": "1", "b": "2", "c": "3"} #а не {u"a": "1", u"b": "2", u"c": "3"} 

Данные импортируются из базы данных postgreSQL в этом формате. Любая помощь или идеи с этой проблемой? есть ли способ преобразовать Unicode?