Почему я получаю IndexError при преобразовании длинного списка в панде DataFrame?

голоса
-2

У меня есть список наборов, которые содержат OrderedDicts, которые выглядят, как это, но фактический список содержит ~ 22000 элементов:

o_dict_list = [(OrderedDict([('StreetNamePreType', 'ROAD'), ('StreetName', 'Coffee')]), 'Ambiguous'),
       (OrderedDict([('StreetNamePreType', 'AVENUE'), ('StreetName', 'Washington')]), 'Ambiguous'),
       (OrderedDict([('StreetNamePreType', 'ROAD'), ('StreetName', 'Quartz')]), 'Ambiguous')]

Когда я пытаюсь преобразовать этот список панды DataFrame используя вопрос и решение отметить здесь , на весь список, я получаю следующее сообщение об ошибке:

IndexError: string index out of range

Для справки, строка кода, которая вызывает ошибку здесь:

pd.DataFrame([o_dict_list[i][0] for i, j in enumerate(o_dict_list)])

Когда я урезать список вниз до 1000, я могу получить DataFrame, чтобы заполнить без каких-либо проблем. Единственная проблема, когда я использую весь список элементов ~ 22K.

Я использую:

Python 3.6.5 :: Anaconda, Inc. pandas==0.23.0 numpy 1.15.2 на 10 машине окна.

Кто - нибудь знает , почему я получаю , IndexErrorкогда я использую список элементов ~ 22K?

Обновление: Как указано ниже, я был в состоянии решить эту проблему, разбивая список и тестирование каждого из них. При этом, я был в состоянии найти часть списка , который вызывает код на провал. Спасибо за помощь.

Задан 20/10/2018 в 05:19
источник пользователем
На других языках...                            


1 ответов

голоса
2

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

log2 (22000) меньше 15, что максимальное количество bisections вам нужно будет попытаться сузить, где ваша проблема.

Ответил 20/10/2018 в 05:25
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more