Spec-Zone.ru › pandas 0.23

pandas.DataFrame.to_dict

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

Преобразовать DataFrame в словарь.

Тип пар ключ-значение можно настроить параметрами (см. ниже).

Параметры:

orient : str {‘dict’, ‘list’, ‘series’, ‘split’, ‘records’, ‘index’}

Определяет тип значений словаря.

  • ‘dict’ (по умолчанию) : словарь типа {столбец -> {индекс -> значение}}
  • ‘list’ : словарь типа {столбец -> [значения]}
  • ‘series’ : словарь типа {столбец -> Series(значения)}
  • ‘split’ : словарь типа {‘индекс’ -> [индекс], ‘столбцы’ -> [столбцы], ‘данные’ -> [значения]}
  • ‘records’ : список типа [{столбец -> значение}, … , {столбец -> значение}]
  • ‘index’ : словарь типа {индекс -> {столбец -> значение}}

Допускаются сокращения. s указывает на series и sp указывает на split.

into : класс, по умолчанию dict

Подкласс collections.Mapping, используемый для всех отображений в возвращаемом значении. Может быть фактическим классом или пустым экземпляром типа отображения, который вы хотите. Если вы хотите collections.defaultdict, вы должны передать его инициализированным.

В версии 0.21.0.

Возвращает:
result : collections.Mapping like {column -> {index -> value}}

См. также

DataFrame.from_dict
создание DataFrame из словаря
DataFrame.to_json
преобразование DataFrame в формат JSON

Примеры

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

Можно указать ориентацию возвращаемого значения.

>>> df.to_dict('series')
{'col1': a    1
         b    2
         Name: col1, dtype: int64,
 'col2': a    0.50
         b    0.75
         Name: col2, dtype: float64}
>>> df.to_dict('split')
{'index': ['a', 'b'], 'columns': ['col1', 'col2'],
 'data': [[1.0, 0.5], [2.0, 0.75]]}
>>> df.to_dict('records')
[{'col1': 1.0, 'col2': 0.5}, {'col1': 2.0, 'col2': 0.75}]
>>> df.to_dict('index')
{'a': {'col1': 1.0, 'col2': 0.5}, 'b': {'col1': 2.0, 'col2': 0.75}}

Также можно указать тип отображения.

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

Если вам нужен defaultdict, вам нужно его инициализировать:

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

© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.to_dict.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API