สมมติว่าคุณมี DataFrame และต้องการแสดงแต่ละแถวในรูปแบบ OrderedDict ที่มีค่าเป็น tuple
วิธีแก้ปัญหา
- สร้าง DataFrame
- ใช้
df.itertuples(name='stud')วนลูปเข้าถึงแต่ละแถว - แปลงแต่ละแถวเป็น 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 ที่เก็บลำดับคอลัมน์ไว้