pandas.DataFrame.to_dict#

DataFrame.to_dict(orient='dict', *, into= 'dict'>, index=True)[источник]#

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

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

Параметры:
orientstr {‘dict’, ‘list’, ‘series’, ‘split’, ‘tight’, ‘records’, ‘index’}

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

  • ‘dict’ (по умолчанию) : словарь вида {столбец -> {индекс -> значение}}

  • ‘list’ : словарь вида {столбец -> [значения]}

  • 'series' : словарь вида {столбец -> Series(значения)}

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

  • ‘tight’ : словарь вида {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values], ‘index_names’ -> [index.names], ‘column_names’ -> [column.names]}

  • ‘records’ : список вида [{столбец -> значение}, … , {столбец -> значение}]

  • 'index' : словарь вида {index -> {column -> value}}

Добавлено в версии 1.4.0: ‘tight’ как допустимое значение для orient аргумент

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

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

indexbool, по умолчанию True

Включать ли элемент индекса (и элемент index_names, если orient является 'tight') в возвращаемом словаре. Может быть только False когда orient является 'split' или 'tight'.

Добавлено в версии 2.0.0.

Возвращает:
dict, list или collections.abc.MutableMapping

Вернуть объект collections.abc.MutableMapping, представляющий DataFrame. Полученное преобразование зависит от orient параметр.

Смотрите также

DataFrame.from_dict

Создать DataFrame из словаря.

DataFrame.to_json

Преобразовать DataFrame в формат JSON.

Примеры

>>> 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(, {'col1': 1, 'col2': 0.5}),
 defaultdict(, {'col1': 2, 'col2': 0.75})]