Hướng dẫn how to convert dataframe to list of dictionary in python - cách chuyển đổi dataframe thành danh sách từ điển trong python

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ư:
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/softhints/Pandas-Tutorials/master/data/population/population.csv')
df
150016001700175020502150
Vùng đất585 660 710 791 9725 9746
Thế giới86 114 106 106 2478 2308
Châu phi282 350 411 502 5267 5561
Châu Á168 170 178 190 734 517
Châu Âu40 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:

Hướng dẫn how to convert dataframe to list of dictionary in python - cách chuyển đổi dataframe thành danh sách từ điển trong python

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')
0

Bạ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:

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')
1

Chú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')
3

result:

df.to_dict('index')
4

Tài nguyên

  • Sổ tay
  • pandas.DataFrame.to_dict

Kết quả = Danh sách (hồ sơ).

Cách chuyển đổi DataFrame thành danh sách các từ điển trong gấu trúc..
DF.to_dict ('bản ghi').
Nhập gấu trúc dưới dạng pd df = pd.....
DF.....
df [['khu vực', '1500', '1600', '1700']].....
DF.....
df [['khu vực', '1500', '1600', '1700']].....
data_dict = [] cho chỉ mục, hàng trong df [['khu vực', '1500', '1600', '1700']].....

data_dict = [] cho chỉ mục, hàng trong df [df ..

Làm thế nào để bạn chuyển đổi một khung dữ liệu thành một từ điển trong Python?use to_dict() method, this takes orient as dict by default which returns the DataFrame in format {column -> {index -> value}} . When no orient is specified, to_dict() returns in this format.

Làm thế nào để bạn chuyển đổi một DataFrame thành một danh sách trong Python?

Để chuyển đổi Pandas DataFrame thành liệt kê trong Python, hãy sử dụng hàm dataFrame.values (). Tolist ().use the DataFrame. values(). tolist() function.

Làm thế nào để bạn chuyển đổi một DataFrame thành một danh sách các bộ dữ liệu?

Làm thế nào để chuyển đổi một bản dữ liệu gấu trúc thành một danh sách các bộ dữ liệu trong Python..
df = pd.DataFrame ({'col1': [1, 2, 3], 'col2': [4, 5, 6]}).
print(df).
hồ sơ = df.to_Records (index = false).
Kết quả = Danh sách (hồ sơ).
print(result).