DataFrame.to_dict(orient='dict', into=<class 'dict'>) [source]
将DataFrame
转换为字典(dict)。
可以使用参数自定义键值对的类型(请参见下文)。
参数: | orient : 确定字典值的类型。 1) 2) 3) 4) ‘columns’ -> [columns], ‘data’ -> [values]} 5) {column -> value}] 6) 缩写是允许的。s表示series,sp表示split。
可以是您想要的映射类型的实际类或空实例。 如果你想要一个 |
返回值: | dict, list 或 返回一个 最终的转换依赖于 |
例子
>>> 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}}
您还可以指定映射类型
>>> 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})]