กำลังรับรายการของรายการลงใน DataFrame แพนด้า


177

ฉันกำลังอ่านเนื้อหาของสเปรดชีตเป็นแพนด้า DataNitro มีวิธีการที่ส่งกลับการเลือกรูปสี่เหลี่ยมผืนผ้าของเซลล์เป็นรายการ ดังนั้น

table = Cell("A1").table

จะช่วยให้

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

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

ฉันกำลังยุ่งกับการเขียนโค้ดเพื่อแปลสิ่งนี้ แต่ฉันเดาว่ามันเป็นการใช้งานง่ายที่ต้องมีวิธีในการทำสิ่งนี้ ดูเหมือนจะไม่พบมันในเอกสารประกอบ ตัวชี้ใด ๆ สำหรับวิธีการที่จะทำให้สิ่งนี้ง่ายขึ้น?

คำตอบ:



84

ด้วยวิธีที่อธิบายโดย EdChum ด้านบนค่าในรายการจะแสดงเป็นแถว หากต้องการแสดงค่าของรายการเป็นคอลัมน์ใน DataFrame แทนเพียงแค่ใช้ transpose () ดังต่อไปนี้:

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

ผลลัพธ์คือ:

      Heading1  Heading2
0         1        3
1         2        4

6

แม้ไม่มีpopรายการที่เราสามารถทำได้set_index

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

ปรับปรุง 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.