對pandas中to dict的用法詳解

2022-10-04 19:33:11 字數 3347 閱讀 2668

簡介:pandas 中的to_dict 可以對dataframe型別的資料進行轉換

可以選擇六種的轉換型別,分別對應於引數 『dict', 『list', 『series', 『split', 『records', 『index',下面逐一介紹每種的用法

help on method to_dict in module pandas.core.frame:

to_dict(orient='dict') method of pandas.core.frame.dataframe instance

convert dataframe to dictionary.

parameters

----------

orient : str

determines the type of the values of the dictionary.

- dict (default) : dict like }

- list : dict like

- series : dict like

- split : dict like

- records : list like

[, ... , ]

- index : dict like }

.. versionadded:: 0.17.0

abbreviations are allowed. `s` indicates `series` and `sp`

indicates `split`.

returns

-------

result : dict like }

1、選擇引數orient='dict'

dict也是預設的引數,下面的data資料型別為dataframe結構, 會形成 }這樣的結構的字典,可以看成是一種雙重字典結構

- 單獨提取每列的值及其索引,然後組合成乙個字典

- 再將上述的列屬性作為關鍵字(key),值(values)為上述的字典

查詢方式為 :data_dict[key1][key2]

- data_dict 為引數選擇orient='dict'時的資料名

- key1 為列屬性的鍵值(外層)

- key2 為內層字典對應的鍵值

data

out[9]:

pclass age embarked home.dest ***

1086 3rd 31.194181 unknown unknown male

12 1st 31.194181 cherbourg paris, france female

1036 3rd 31.194181 unknown unknown male

833 3rd 32.000000 southampton foresvik, norway portland, nd male

1108 3rd 31.194181 unknown unknown male

562 2nd 41.000000 cherbourg new york, ny male

437 2nd 48.000000 southampton somerset / bernardsville, nj female

663 3rd 26.000000 southampton unknown male

669 3rd 19.000000 southampton england male

507 2nd 31.194181 southampton petworth, sus*** male

in[10]: data_dict=data.to_dict(orient= 'dict')

in[11]: data_dict

out[11]:

, 'embarked': ,

'home.dest': ,

'pclass': ,

'***': }

2、當關鍵字orient=' list' 時

和1中比較相似,只不過內層變成了乙個列表,結構為

查詢方式為: data_list[keys][index]

data_list 為關鍵字orient='list' 時對應的資料名

keys 為列屬性的鍵值,如本例中的'age' , 『embarked'等

index 為整型索引,從0開始到最後

in[19]: data_list=data.to_dict(orient='list')

in[20]: data_list

out[20]:

3、關鍵字引數orient='series'

形成結構

呼叫格式為:data_series[key1][key2]或data_dict[key1]

data_series 為資料對應的名字

key1 為列屬性的鍵值,如本例中的'age' , 『embarked'等

key2 使用資料原始的索引(可選)

in[21]: data_series=data.to_dict(orient='series')

in[22]: data_series

out[22]:

4、關鍵字引數orient='split'

形成的結構,是將資料、索引、屬性名單獨脫離出來構成字典

呼叫方式有 data_split[『index'],data_split[『data'],data_split[『columns']

data_split=data.to_dict(orient='split')

data_split

out[38]:

5、當關鍵字orient='records' 時

形成[, … , ]的結構

整體構成乙個列表,內層是將原始資料的每行提取出來形成字典

呼叫格式為data_records[index][key1]

data_records=data.to_dict(orient='records')

data_records

out[41]:

[, ,

, ,, ,

, ,, ]

6、當關鍵字orient='index' 時

形成}的結構,呼叫格式正好和'dict' 對應的反過來,請讀者自己思考

data_index=data.to_dict(orient='index')

data_index

out[43]:

, 437: ,

507: ,

562: ,

663: ,

669: ,

833: ,

1036: ,

1086: ,

1108: }

本文標題: 對pandas中to_dict的用法詳解

本文位址:

對pandas中describe的理解

例如讀入乙個資料 df pd.read csv somedata.csv 在探索資料的時候,可以使用describe函式,describe函式預設只列印出來numerical data的資料,對於object型別的不列印。例如 df.describe 缺省會把具有數值型別的資料的資訊列印出來。當然也...

pandas對DataFrame中列的操作

要獲取一列的資料,還是用中括號 的方式,跟 series 類似。比如嘗試獲取上面這個表中的 name 列資料 data name 因為我們只獲取一列,所以返回的就是乙個 series。可以用 type 函式確認返回值的型別 type data name 增加資料列有兩種辦法 可以從頭開始定義乙個 p...

對pandas中Series的map函式詳解

series的map方法可以接受乙個函式或含有對映關係的字典型物件。使用map是一種實現元素級轉換以及其他資料清理工作的便捷方式。dataframe中對應的是applymap 函式,當然dataframe還有apply 函式 1 字典對映 import pan程式設計客棧das as pd from...