Ошибка слишком большого числа столбцов в вложенном списке в DataFrame Pandas - PullRequest
0 голосов
/ 20 мая 2019

У меня есть структура данных вложенных списков. Каждая ячейка в панде DataFrame должна иметь вложенный список.

Я пробовал следующее;

Сначала у меня есть список заголовков:

headings = ["heading1", "heading2", "heading3", "heading4", "heading5", "heading6"]

У меня тогда есть структура данных:

data_list = [[foo, bar], [foo1, bar1], [foo2, bar2], [foo3, bar3], [foo4, bar4], [foo5, bar5], [bar, foo], [bar1, foo1], [bar2, foo2], [bar3, foo3], [bar4, foo4], [bar5, foo5]]

Чего я хочу добиться, так это создать фрейм данных pandas, и для каждого 6-го элемента в структуре данных мы начинаем новую строку в фрейме pandas. В приведенном выше примере это означает, что будет две строки с 6 столбцами.

До сих пор я пробовал следующее:

Сгенерирован индекс строки из длины структуры данных:

idx =[i for i in range((len(data_list) / 6))]

Затем я попытался сгенерировать Dataframe, используя столбцы и индекс:

df = pd.DataFrame(data_list, columns=headings, index=idx)

В этом случае я получаю следующую ошибку:

AssertionError: 6 columns passed, passed data had 12 columns

У меня вопрос, как я могу начать новую строку каждый 6-й элемент во вложенном списке?

1 Ответ

0 голосов
/ 20 мая 2019

Ваш список данных находится в формате списка, преобразуйте его в массив numpy

import numpy as np
data_list = np.array(data_list)

Теперь используйте метод изменения формы, чтобы изменить данные на 2 строки и 6 столбцов

data_list  = data_list.reshape([2,6,2])

вывод:

array([[['foo', 'bar'],
        ['foo1', 'bar1'],
        ['foo2', 'bar2'],
        ['foo3', 'bar3'],
        ['foo4', 'bar4'],
        ['foo5', 'bar5']],

       [['bar', 'foo'],
        ['bar1', 'foo1'],
        ['bar2', 'foo2'],
        ['bar3', 'foo3'],
        ['bar4', 'foo4'],
        ['bar5', 'foo5']]], dtype='<U4')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...