Obtener la lista de listas en pandas DataFrame

177

Estoy leyendo el contenido de una hoja de cálculo en pandas. DataNitro tiene un método que devuelve una selección rectangular de celdas como una lista de listas. Entonces

table = Cell("A1").table

da

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

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

Estoy ocupado escribiendo código para traducir esto, pero supongo que es un uso tan simple que debe haber un método para hacerlo. Parece que no puedo encontrarlo en la documentación. ¿Algún indicador del método que simplificaría esto?

Joop
fuente

Respuestas:

266

Llame al pd.DataFrameconstructor directamente:

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

   Heading1  Heading2
0         1         2
1         3         4
EdChum
fuente
84

Con el enfoque explicado por EdChum arriba, los valores en la lista se muestran como filas. Para mostrar los valores de las listas como columnas en DataFrame, simplemente use transpose () de la siguiente manera:

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

La salida entonces es:

      Heading1  Heading2
0         1        3
1         2        4
Shoresh
fuente
6

Incluso sin popla lista podemos hacer conset_index

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

Actualizar 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
fuente