Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

In các hàng DataFrame dưới dạng OrderedDict với list tuple trong Python

Giả sử bạn muốn chuyển từng hàng của DataFrame thành OrderedDict chứa các cặp (tên cột, giá trị) bao gồm cả index.

Giải pháp

  • Tạo DataFrame.
  • Sử dụng df.itertuples(name='stud') để duyệt các hàng dưới dạng namedtuple.
  • Chuyển mỗi namedtuple thành OrderedDict bằng phương thức _asdict().

Mã ví dụ

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 là:\n", df)

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

Kết quả

DataFrame là:
    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)]) 

Giải thích:

  • itertuples(name='stud') trả về namedtuple với tên là 'stud', trường đầu tiên là Index (chỉ số hàng).
  • _asdict() chuyển namedtuple thành OrderedDict bảo toàn thứ tự cột.
  • Cách này hữu ích khi cần xử lý từng hàng như một dictionary có thứ tự.