Listelerin pandalara aktarılması DataFrame


177

Bir e-tablonun içeriğini pandalara okuyorum. DataNitro, liste listesi olarak dikdörtgen hücre seçimini döndüren bir yönteme sahiptir. Yani

table = Cell("A1").table

verir

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

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

Bunu çevirmek için kod yazmakla meşgulüm, ama benim tahminim bunu yapmak için bir yöntem olması gerektiği kadar basit bir kullanım olmasıdır. Cant belgelerinde bulmak gibi görünüyor. Bunu basitleştirecek yönteme işaret eden var mı?

Yanıtlar:


266

Yapıcıyı pd.DataFramedoğrudan arayın :

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

   Heading1  Heading2
0         1         2
1         3         4

84

Yukarıda EdChum tarafından açıklanan yaklaşımla listedeki değerler satır olarak gösterilir. Listelerin değerlerini DataFrame'de sütun olarak göstermek için transpose () yöntemini aşağıdaki gibi kullanmanız yeterlidir:

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

Bu durumda çıktı:

      Heading1  Heading2
0         1        3
1         2        4

6

popListe olmadan da yapabilirizset_index

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

Güncelleme 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.