Ottenere l'elenco degli elenchi in Panda DataFrame


177

Sto leggendo i contenuti di un foglio di calcolo in panda. DataNitro ha un metodo che restituisce una selezione rettangolare di celle come un elenco di elenchi. Così

table = Cell("A1").table

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

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

Sono impegnato a scrivere codice per tradurre questo, ma la mia ipotesi è che è un uso così semplice che ci deve essere un metodo per farlo. Non riesco a trovarlo nella documentazione. Qualche suggerimento sul metodo che semplificherebbe questo?

Risposte:


266

Chiama pd.DataFramedirettamente il costruttore:

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

   Heading1  Heading2
0         1         2
1         3         4

84

Con l'approccio spiegato da EdChum sopra, i valori nell'elenco sono mostrati come righe. Per mostrare invece i valori degli elenchi come colonne in DataFrame, usa semplicemente transpose () come segue:

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

L'output quindi è:

      Heading1  Heading2
0         1        3
1         2        4

6

Anche senza popla lista di cui possiamo fare a menoset_index

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

Aggiornare 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.