Получение списка списков в пандах DataFrame

177

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

table = Cell("A1").table

дает

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

headers = table.pop(0) # gives the headers as list and leaves data

Я занят написанием кода для перевода этого, но я предполагаю, что это настолько простое использование, что для этого должен быть метод. Не могу найти это в документации. Любые указатели на метод, который бы упростил это?

Joop
источник

Ответы:

266

Вызовите pd.DataFrameконструктор напрямую:

df = pd.DataFrame(table, columns=headers)
df

   Heading1  Heading2
0         1         2
1         3         4
EdChum
источник
84

При подходе, объясненном EdChum выше, значения в списке отображаются в виде строк. Чтобы вместо этого отображать значения списков в виде столбцов в DataFrame, просто используйте transpose () следующим образом:

table = [[1 , 2], [3, 4]]
df = DataFrame(table)
df = df.transpose()
df.columns = ['Heading1', 'Heading2']

Выходные данные тогда:

      Heading1  Heading2
0         1        3
1         2        4
шореш
источник
6

Даже без popсписка мы можем сделать сset_index

pd.DataFrame(table).T.set_index(0).T
Out[11]: 
0 Heading1 Heading2
1        1        2
2        3        4

Обновить from_records

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

pd.DataFrame.from_records(table[1:],columns=table[0])
Out[58]: 
   Heading1  Heading2
0         1         2
1         3         4
YOBEN_S
источник