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?

Antworten:


266

Rufen Sie den pd.DataFrameKonstruktor direkt auf:

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

   Heading1  Heading2
0         1         2
1         3         4

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.