当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。