Hướng dẫn dictionary within dataframe python - từ điển trong khung dữ liệu python

Đối với việc sử dụng của tôi (tên nút có vị trí XY), tôi đã tìm thấy câu trả lời của @user4179775 cho câu trả lời hữu ích / trực quan nhất:

Nội dung chính ShowShow

  • Một cách tiếp cận khác để chuyển đổi hai giá trị cột thành từ điển là trước tiên đặt các giá trị cột chúng ta cần làm khóa để được chỉ mục cho DataFrame và sau đó sử dụng hàm TO_DICT () của Pandas để chuyển đổi từ điển. Điều này tạo ra một từ điển cho tất cả các cột trong DataFrame.
  • Làm thế nào để bạn chuyển đổi một DataFrame thành một danh sách từ điển?
  • data_dict = [] cho chỉ mục, hàng trong df [df ..
  • Làm cách nào để biến một cột thành một từ điển?

import pandas as pd df = pd.read_csv('glycolysis_nodes_xy.tsv', sep='\t') df.head() nodes x y 0 c00033 146 958 1 c00031 601 195 ... xy_dict_list=dict([(i,[a,b]) for i, a,b in zip(df.nodes, df.x,df.y)]) xy_dict_list {'c00022': [483, 868], 'c00024': [146, 868], ... } xy_dict_tuples=dict([(i,(a,b)) for i, a,b in zip(df.nodes, df.x,df.y)]) xy_dict_tuples {'c00022': (483, 868), 'c00024': (146, 868), ... }

Phụ lục

Sau đó tôi trở lại vấn đề này, cho công việc khác, nhưng liên quan. Đây là một cách tiếp cận gần gũi hơn với câu trả lời [xuất sắc] được chấp nhận.

node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ...

Chuyển đổi gấu trúc DataFrame thành [danh sách], {dict}, {dict of {dict}}, ...

Mỗi câu trả lời được chấp nhận:

node_df.set_index('kegg_cid').T.to_dict('list') {'c00022': [22, 22, 'pyruvate', 1, 1], 'c00024': [24, 24, 'acetyl-CoA', 1, 1], ... } node_df.set_index('kegg_cid').T.to_dict('dict') {'c00022': {'kegg_id': 22, 'name': 'pyruvate', 'node': 22, 'vis': 1, 'wt': 1}, 'c00024': {'kegg_id': 24, 'name': 'acetyl-CoA', 'node': 24, 'vis': 1, 'wt': 1}, ... }

Trong trường hợp của tôi, tôi muốn làm điều tương tự nhưng với các cột được chọn từ GANDAS DATAFRAME, vì vậy tôi cần phải cắt các cột. Có hai cách tiếp cận.

  1. Directly:

(Xem: Chuyển đổi gấu trúc thành từ điển xác định các cột được sử dụng cho các giá trị chính)

node_df.set_index('kegg_cid')[['name', 'wt', 'vis']].T.to_dict('dict') {'c00022': {'name': 'pyruvate', 'vis': 1, 'wt': 1}, 'c00024': {'name': 'acetyl-CoA', 'vis': 1, 'wt': 1}, ... }
  1. "Một cách gián tiếp:" Đầu tiên, cắt các cột/dữ liệu mong muốn từ khung gầm gấu (một lần nữa, hai cách tiếp cận),
node_df_sliced = node_df[['kegg_cid', 'name', 'wt', 'vis']]

hoặc

node_df_sliced2 = node_df.loc[:, ['kegg_cid', 'name', 'wt', 'vis']]

Sau đó có thể được sử dụng để tạo ra một từ điển từ điển

node_df_sliced.set_index('kegg_cid').T.to_dict('dict') {'c00022': {'name': 'pyruvate', 'vis': 1, 'wt': 1}, 'c00024': {'name': 'acetyl-CoA', 'vis': 1, 'wt': 1}, ... }
DataFrame.to_dict (Orient = 'Dict', Into =) [Nguồn]#to_dict(orient='dict', into= 'dict'>)[source]#‘tight’ as an allowed value for the to_dict(orient='dict', into= 'dict'>)[source]#

Chuyển đổi DataFrame thành một từ điển.

Loại của các cặp giá trị khóa có thể được tùy chỉnh với các tham số (xem bên dưới).

ParameterersoNetStr {‘Dict,‘ Danh sách, ‘Sê -ri,’ split, ‘chặt chẽ,‘ bản ghiorientstr {‘dict’, ‘list’, ‘series’, ‘split’, ‘tight’, ‘records’, ‘index’}orientstr {‘dict’, ‘list’, ‘series’, ‘split’, ‘tight’, ‘records’, ‘index’}

Xác định loại giá trị của từ điển.

  • ‘Dict

  • ‘Danh sách: Dict Like {cột -> [Giá trị]}

  • ‘Sê -ri

  • Split Split

  • '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 như [{cột -> value}, trên mạng, {cột -> value}]

  • ‘Index

Chữ viết tắt được cho phép. S chỉ ra sê -ri và SP chỉ ra sự phân chia.

Mới trong phiên bản 1.4.0: ‘chặt chẽ như một giá trị được phép cho đối số

node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 5
‘tight’ as an allowed value for the

node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 5 argumentIntoClass, Decel mặc địnhclass, default dictIntoClass, Decel mặc địnhclass, default dict

Các bộ sưu tập. Có thể là lớp thực tế hoặc một thể hiện trống của loại ánh xạ bạn muốn. Nếu bạn muốn một bộ sưu tập.defaultdict, bạn phải vượt qua nó được khởi tạo.

ReturnSdict, danh sách hoặc bộ sưu tập.abc.mapping

Trả về một bộ sưu tập. Việc chuyển đổi kết quả phụ thuộc vào tham số định hướng.

Ví dụ

>>> df = pd.DataFrame({'col1': [1, 2], ... 'col2': [0.5, 0.75]}, ... index=['row1', 'row2']) >>> df col1 col2 row1 1 0.50 row2 2 0.75 >>> df.to_dict() {'col1': {'row1': 1, 'row2': 2}, 'col2': {'row1': 0.5, 'row2': 0.75}}

Bạn có thể chỉ định hướng trả về.

node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 0node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 1node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 0node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 1node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 2

Bạn cũng có thể chỉ định loại ánh xạ.

node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 3

Nếu bạn muốn một DefaultDict, bạn cần khởi tạo nó:

node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t') node_df.head() node kegg_id kegg_cid name wt vis 0 22 22 c00022 pyruvate 1 1 1 24 24 c00024 acetyl-CoA 1 1 ... 4

Một cách tiếp cận khác để chuyển đổi hai giá trị cột thành từ điển là trước tiên đặt các giá trị cột chúng ta cần làm khóa để được chỉ mục cho DataFrame và sau đó sử dụng hàm TO_DICT () của Pandas để chuyển đổi từ điển. Điều này tạo ra một từ điển cho tất cả các cột trong DataFrame.

Đầu tiên, tìm kiếm tiêu đề bảng và chia trên các khoảng trống để xác định danh sách. Tuy nhiên, 'kích thước' sẽ cần phải đặc biệt vì nó sẽ cần phải bỏ qua khoảng trống giữa số và "TB".search for the table header and split on spaces to define a list.Second, search for the virtual drive with "number/number" and split on spaces to define the second list. However, 'Size' will need to be special as it will need to ignore the space between number and "TB".search for the table header and split on spaces to define a list. Second, search for the virtual drive with "number/number" and split on spaces to define the second list. However, 'Size' will need to be special as it will need to ignore the space between number and "TB".

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

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 cách nào để chuyển đổi một hàng thành từ điển DataFrame?use the index parameter of the DataFrame. to_dict() function. It returns a list of dictionary objects.use the index parameter of the DataFrame. to_dict() function. It returns a list of dictionary objects.

Làm cách nào để biến một cột thành một từ điển?

Một cách tiếp cận khác để chuyển đổi hai giá trị cột thành từ điển là trước tiên đặt các giá trị cột chúng ta cần làm khóa để được chỉ mục cho DataFrame và sau đó sử dụng hàm TO_DICT () của Pandas để chuyển đổi từ điển.Điều này tạo ra một từ điển cho tất cả các cột trong DataFrame.first set the column values we need as keys to be index for the dataframe and then use Pandas' to_dict() function to convert it a dictionary. This creates a dictionary for all columns in the dataframe.first set the column values we need as keys to be index for the dataframe and then use Pandas' to_dict() function to convert it a dictionary. This creates a dictionary for all columns in the dataframe.

Chủ đề