У меня есть следующий список:
o_dict_list = [(OrderedDict([('StreetNamePreType', 'ROAD'), ('StreetName', 'Coffee')]), 'Ambiguous'),
(OrderedDict([('StreetNamePreType', 'AVENUE'), ('StreetName', 'Washington')]), 'Ambiguous'),
(OrderedDict([('StreetNamePreType', 'ROAD'), ('StreetName', 'Quartz')]), 'Ambiguous')]
И, как говорится в заголовке, я пытаюсь взять этот список и создать кадр данных pandas, в котором столбцы: 'StreetNamePreType'
и 'StreetName'
истроки содержат соответствующие значения для каждого ключа в OrderedDict.
Я выполнил поиск в StackOverflow, чтобы получить некоторые инструкции о том, как создать кадр данных, см. здесь , но я получаю ошибкукогда я запускаю этот код (я пытаюсь воспроизвести то, что происходит в этом ответе).
from collections import Counter, OrderedDict
import pandas as pd
col = Counter()
for k in o_dict_list:
col.update(k)
df = pd.DataFrame([k.values() for k in o_dict_list], columns = col.keys())
Когда я запускаю этот код, я получаю ошибку: TypeError: unhashable type: 'OrderedDict'
Я посмотрел эту ошибку, здесь , я понял, что есть проблема с типами данных, но я, к сожалению, я недостаточно знаю о внутренней работе Python / Pandas, чтобы решить эту проблему на моемown.
Я подозреваю, что мой список OrderedDict не совсем такой, как в здесь , поэтому я не заставляю свой код работать.Более конкретно, я считаю, что у меня есть список наборов, и каждый элемент содержит OrderedDict.Пример, который я связал с здесь , кажется правильным списком OrderedDicts.
Опять же, я недостаточно знаю о внутренней работе Python / Pandas, чтобы самостоятельно решить эту проблему, и ищу помощи.