Như một phần mở rộng cho câu trả lời của John Galt -
Đối với DataFrame sau,
customer item1 item2 item3
0 1 apple milk tomato
1 2 water orange potato
2 3 juice mango chips
Nếu bạn muốn có một danh sách các từ điển bao gồm các giá trị chỉ mục, bạn có thể làm một cái gì đó như,
df.to_dict['index']
Trong đó xuất ra một từ điển từ điển trong đó các khóa của từ điển cha là các giá trị chỉ mục. Trong trường hợp cụ thể này,
{0: {'customer': 1, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
1: {'customer': 2, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
2: {'customer': 3, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}}
Kết quả = Danh sách [hồ sơ].convert Pandas DataFrame to a list of dictionaries.
Trong hướng dẫn nhanh này, chúng tôi sẽ đề cập đến cách chuyển đổi gấu trúc DataFrame thành danh sách các từ điển.answer of DataFrame to list of dictionaries:
df.to_dict['records']
Dưới đây bạn có thể tìm thấy câu trả lời nhanh của DataFrame vào danh sách từ điển:
Hãy giải thích giải pháp trong một ví dụ thực tế.
Giả sử chúng ta có DataFrame với dữ liệu như:Vùng đất | 585 | 660 | 710 | 791 | 9725 | 9746 |
Thế giới | 86 | 114 | 106 | 106 | 2478 | 2308 |
Châu phi | 282 | 350 | 411 | 502 | 5267 | 5561 |
Châu Á | 168 | 170 | 178 | 190 | 734 | 517 |
Châu Âu | 40 | 20 | 10 | 16 | 784 | 912 |
Mỹ Latinh [Lưu ý 1]
{'Region': 'World',
'1500': 585,
'1600': 660,
'1700': 710,
'1750': 791,
'1800': 978,
'1850': 1262,
'1900': 1650,
'1950': 2521,
'1999': 6008,
'2008': 6707,
'2010': 6896,
'2012': 7052,
'2050': 9725,
'2150': 9746},
{'Region': 'Africa',
'1500': 86,
'1600': 114,
'1700': 106,
Mà bạn muốn chuyển đổi thành danh sách các từ điển như:
df.to_dict['records']
Để đạt được hành vi này, bạn có thể sử dụng các cách tiếp cận khác nhau. Cách tiếp cận đầu tiên sẽ sử dụng phương pháp Pandas
df.to_dict['index']
5:- Phương pháp này có một số tùy chọn có thể:
- 'Dict, [mặc định]: Dict như {cột -> {index -> value}}
- 'Danh sách: Dict Like {cột -> [Giá trị]}
- 'Sê -ri
- 'Split,: Dict như {' index,
- 'chặt chẽ': Dict như {'index' -> [index], 'cột' -> [cột], 'data' -> [giá trị], 'index_names' -> [index.names], 'cột_names' -> [cột.names]}
- 'Bản ghi âm: Danh sách giống như [{cột -> value}, trên mạng, {cột -> value}]
'Index
Chuyển đổi cột thành danh sách từ điển
df[['Region', '1500', '1600', '1700']].to_dict['records']
Nếu bạn chỉ muốn chuyển đổi một số cột thành danh sách từ điển, bạn có thể sử dụng cú pháp tương tự. Điều này có thể đạt được bằng cách chọn các cột và sau đó áp dụng phương pháp
df.to_dict['index']
6:[{'Region': 'World', '1500': 585, '1600': 660, '1700': 710},
{'Region': 'Africa', '1500': 86, '1600': 114, '1700': 106},
{'Region': 'Asia', '1500': 282, '1600': 350, '1700': 411},
{'Region': 'Europe', '1500': 168, '1600': 170, '1700': 178},
{'Region': 'Latin America [Note 1] \u200b',
'1500': 40,
'1600': 20,
'1700': 10},
{'Region': 'Northern America [Note 1] \u200b',
'1500': 6,
'1600': 3,
'1700': 2},
{'Region': 'Oceania', '1500': 3, '1600': 3, '1700': 3}]
Kết quả là tập hợp con của các cột đã chọn:
Chuyển đổi có thể nhìn thấy từ hình ảnh dưới đây:
Chuyển đổi DataFrame thành danh sách từ điển - Cột khôn ngoan
{'Region': {0: 'World',
1: 'Africa',
2: 'Asia',
3: 'Europe',
4: 'Latin America [Note 1] \u200b',
5: 'Northern America [Note 1] \u200b',
6: 'Oceania'},
'1500': {0: 585, 1: 86, 2: 282, 3: 168, 4: 40, 5: 6, 6: 3},
'1600': {0: 660, 1: 114, 2: 350, 3: 170, 4: 20, 5: 3, 6: 3},
'1700': {0: 710, 1: 106, 2: 411, 3: 178, 4: 10, 5: 2, 6: 3},
Điều gì sẽ xảy ra nếu bạn muốn nhận được danh sách cột từ điển khôn ngoan như:
df.to_dict['index']
0Bạn có thể đạt được chuyển đổi này bằng cách chuyển DataFrame bằng df.to_dict['index']
7 và sử dụng tùy chọn df.to_dict['index']
8:
df.to_dict['index']
df.to_dict['index']
Chuyển đổi tùy chỉnh của DataFrame thành danh sách từ điểntransformation of DataFrame to list of dictionaries in Pandas. This option is a bit slower than the rest and works fine for small and medium sized data.
Cuối cùng, hãy đề cập đến trường hợp khi có một logic tùy chỉnh để chuyển đổi DataFrame thành danh sách các từ điển trong gấu trúc. Tùy chọn này chậm hơn một chút so với phần còn lại và hoạt động tốt cho dữ liệu vừa và nhỏ.
df.to_dict['index']
1Chúng tôi sẽ lặp lại trên tất cả các hàng bởi:
[{'Region': 'World', '1500': 585, '1600': 660, '1700': 710},
{'Region': 'Africa', '1500': 86, '1600': 114, '1700': 106},
{'Region': 'Asia', '1500': 282, '1600': 350, '1700': 411},
{'Region': 'Europe', '1500': 168, '1600': 170, '1700': 178},
{'Region': 'Latin America [Note 1] \u200b',
'1500': 40,
'1600': 20,
'1700': 10},
{'Region': 'Northern America [Note 1] \u200b',
'1500': 6,
'1600': 3,
'1700': 2},
{'Region': 'Oceania', '1500': 3, '1600': 3, '1700': 3}]
Kết quả sẽ là:
df.to_dict['index']
3result:
df.to_dict['index']
4Tài nguyên
- Sổ tay
- pandas.DataFrame.to_dict