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?

Respuestas:


266

Llame al pd.DataFrameconstructor directamente:

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

   Heading1  Heading2
0         1         2
1         3         4

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.