Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python แสดงแถว DataFrame เป็น OrderedDict พร้อมค่าเป็น tuple

สมมติว่าคุณมี DataFrame และต้องการแสดงแต่ละแถวในรูปแบบ OrderedDict ที่มีค่าเป็น tuple

วิธีแก้ปัญหา

  1. สร้าง DataFrame
  2. ใช้ df.itertuples(name='stud') วนลูปเข้าถึงแต่ละแถว
  3. แปลงแต่ละแถวเป็น OrderedDict ด้วย row._asdict()

ตัวอย่างโค้ด

import pandas as pd

students = [
    ('Raj', 13, 'Chennai', 80),
    ('Ravi', 12, 'Delhi', 90),
    ('Ram', 13, 'Chennai', 95)
]

df = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Mark'])
print("DataFrame คือ:\n", df)

for row in df.itertuples(name='stud'):
    dict_row = row._asdict()
    print(dict_row)

ผลลัพธ์

DataFrame คือ:
   Name  Age     City  Mark
0   Raj   13  Chennai    80
1  Ravi   12    Delhi    90
2   Ram   13  Chennai    95

OrderedDict([('Index', 0), ('Name', 'Raj'), ('Age', 13), ('City', 'Chennai'), ('Mark', 80)])
OrderedDict([('Index', 1), ('Name', 'Ravi'), ('Age', 12), ('City', 'Delhi'), ('Mark', 90)])
OrderedDict([('Index', 2), ('Name', 'Ram'), ('Age', 13), ('City', 'Chennai'), ('Mark', 95)])

คำอธิบาย: itertuples() ส่งคืน namedtuple สำหรับแต่ละแถว โดยใช้พารามิเตอร์ name ตั้งชื่อ tuple แล้ว _asdict() จะแปลงเป็น OrderedDict ที่เก็บลำดับคอลัมน์ไว้