Liste der Listen in Pandas DataFrame abrufen

177

Ich lese den Inhalt einer Tabelle in Pandas. DataNitro verfügt über eine Methode, die eine rechteckige Auswahl von Zellen als Liste von Listen zurückgibt. So

table = Cell("A1").table

gibt

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

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

Ich bin damit beschäftigt, Code zu schreiben, um dies zu übersetzen, aber ich vermute, dass es eine so einfache Verwendung ist, dass es eine Methode geben muss, um dies zu tun. Kann es nicht in der Dokumentation finden. Gibt es Hinweise auf die Methode, die dies vereinfachen würde?

Joop
quelle

Antworten:

266

Rufen Sie den pd.DataFrameKonstruktor direkt auf:

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

   Heading1  Heading2
0         1         2
1         3         4
EdChum
quelle
84

Bei dem oben von EdChum erläuterten Ansatz werden die Werte in der Liste als Zeilen angezeigt. Verwenden Sie einfach transpose () wie folgt, um die Werte von Listen als Spalten in DataFrame anzuzeigen:

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

Die Ausgabe ist dann:

      Heading1  Heading2
0         1        3
1         2        4
Shoresh
quelle
6

Auch ohne popdie Liste können wir damit umgehenset_index

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

Aktualisieren 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
quelle