當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.DataFrame.to_dict用法及代碼示例


用法:

DataFrame.to_dict(orient='dict', into=<class 'dict'>)

將 DataFrame 轉換為字典。

可以使用參數自定義鍵值對的類型(見下文)。

參數

orient字符串 {‘dict’, ‘list’, ‘series’, ‘split’, ‘records’, ‘index’}

確定字典值的類型。

  • ‘dict’(默認):dict like {column -> {index -> value}}

  • ‘list’:dict like {column -> [values]}

  • ‘series’:dict like {column -> Series(values)}

  • ‘split’:dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}

  • ‘tight’:dict like {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values], ‘index_names’ -> [index.names], ‘column_names’ -> [列名]}

  • ‘records’:list like [{column -> value}, ... , {column -> value}]

  • ‘index’:dict like {index -> {column -> value}}

允許使用縮寫。 s 表示 seriessp 表示 split

into類,默認字典

collections.abc.Mapping 子類用於返回值中的所有 Mapping。可以是實際類或所需映射類型的空實例。如果你想要一個 collections.defaultdict,你必須把它初始化。

返回

dict、list 或 collections.abc.Mapping

返回代表 DataFrame 的 collections.abc.Mapping 對象。生成的轉換取決於orient 參數。

例子

>>> 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}}

您可以指定返回方向。

>>> df.to_dict('series')
{'col1':row1    1
         row2    2
Name:col1, dtype:int64,
'col2':row1    0.50
        row2    0.75
Name:col2, dtype:float64}
>>> df.to_dict('split')
{'index':['row1', 'row2'], 'columns':['col1', 'col2'],
 'data':[[1, 0.5], [2, 0.75]]}
>>> df.to_dict('records')
[{'col1':1, 'col2':0.5}, {'col1':2, 'col2':0.75}]
>>> df.to_dict('index')
{'row1':{'col1':1, 'col2':0.5}, 'row2':{'col1':2, 'col2':0.75}}
>>> df.to_dict('tight')
{'index':['row1', 'row2'], 'columns':['col1', 'col2'],
 'data':[[1, 0.5], [2, 0.75]], 'index_names':[None], 'column_names':[None]}

您還可以指定映射類型。

>>> from collections import OrderedDict, defaultdict
>>> df.to_dict(into=OrderedDict)
OrderedDict([('col1', OrderedDict([('row1', 1), ('row2', 2)])),
             ('col2', OrderedDict([('row1', 0.5), ('row2', 0.75)]))])

如果你想要一個 defaultdict ,你需要初始化它:

>>> dd = defaultdict(list)
>>> df.to_dict('records', into=dd)
[defaultdict(<class 'list'>, {'col1':1, 'col2':0.5}),
 defaultdict(<class 'list'>, {'col1':2, 'col2':0.75})]

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.to_dict。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。