Lấy danh sách danh sách vào gấu trúc DataFrame


177

Tôi đang đọc nội dung của một bảng tính thành gấu trúc. DataNitro có một phương thức trả về một lựa chọn các ô hình chữ nhật dưới dạng danh sách các danh sách. Vì thế

table = Cell("A1").table

cho

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

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

Tôi đang bận viết mã để dịch cái này, nhưng tôi đoán là nó đơn giản đến mức phải có phương pháp để làm việc này. Cant dường như tìm thấy nó trong tài liệu. Bất kỳ con trỏ đến phương pháp sẽ đơn giản hóa điều này?

Câu trả lời:


266

Gọi pd.DataFrametrực tiếp cho nhà xây dựng:

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

   Heading1  Heading2
0         1         2
1         3         4

84

Với cách tiếp cận được giải thích bởi EdChum ở trên, các giá trị trong danh sách được hiển thị dưới dạng các hàng. Thay vào đó, để hiển thị các giá trị của danh sách dưới dạng cột trong DataFrame, chỉ cần sử dụng transpose () như sau:

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

Đầu ra sau đó là:

      Heading1  Heading2
0         1        3
1         2        4

6

Ngay cả khi không có popdanh sách chúng ta có thể làm vớiset_index

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

Cập nhật 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.