Отримання списків списків у пандах 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

Я зайнятий написанням коду, щоб перекласти це, але я здогадуюсь, що це таке просте використання, що для цього повинен бути метод. Начебто, це можна знайти в документації. Будь-які вказівки на метод, який би спростив це?

Відповіді:


266

Телефонуйте pd.DataFrameконструктору безпосередньо:

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

   Heading1  Heading2
0         1         2
1         3         4

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.