Obtendo a lista de listas no panda DataFrame


177

Estou lendo o conteúdo de uma planilha em pandas. O DataNitro possui um método que retorna uma seleção retangular de células como uma lista de listas. assim

table = Cell("A1").table

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

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

Estou ocupado escrevendo código para traduzir isso, mas meu palpite é que é um uso tão simples que deve haver um método para fazer isso. Não consigo encontrá-lo na documentação. Algum ponteiro para o método que simplificaria isso?

Respostas:


266

Chame o pd.DataFrameconstrutor diretamente:

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

   Heading1  Heading2
0         1         2
1         3         4

84

Com a abordagem explicada por EdChum acima, os valores na lista são mostrados como linhas. Para mostrar os valores das listas como colunas no DataFrame, basta usar transpose () da seguinte maneira:

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

A saída é então:

      Heading1  Heading2
0         1        3
1         2        4

6

Mesmo sem popa lista, podemos fazer comset_index

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

Atualizar 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.