pandas.DataFrame.to_dict
- DataFrame.to_dict(orient='dict', *, into=<class 'dict'>, index=True)[source]
-
Преобразование DataFrame в словарь.
Тип пар ключ-значение можно настроить с помощью параметров (см. ниже).
- Parameters:
-
- orient:str {‘dict’, ‘list’, ‘series’, ‘split’, ‘tight’, ‘records’, ‘index’}
-
Определяет тип значений в словаре.
‘dict’ (по умолчанию) : словарь вида {столбец -> {индекс -> значение}}
‘list’ : словарь вида {столбец -> [значения]}
‘series’ : словарь вида {столбец -> Series(значения)}
‘split’ : словарь вида {‘индекс’ -> [индекс], ‘столбцы’ -> [столбцы], ‘данные’ -> [значения]}
‘tight’ : словарь вида {‘индекс’ -> [индекс], ‘столбцы’ -> [столбцы], ‘данные’ -> [значения], ‘имена_индекса’ -> [имена_индекса], ‘имена_столбцов’ -> [имена_столбцов]}
‘records’ : список вида [{столбец -> значение}, … , {столбец -> значение}]
‘index’ : словарь вида {индекс -> {столбец -> значение}}
Добавлена в версии 1.4.0: ‘tight’ как допустимое значение для аргумента
orient - into:class, default dict
-
Подкласс collections.abc.MutableMapping, используемый для всех отображений в возвращаемом значении. Может быть фактическим классом или пустым экземпляром типа отображения, который вы хотите. Если вам нужен collections.defaultdict, вы должны передать его инициализированным.
- index:bool, default True
-
Включать ли элемент индекса (и элемент имен индекса, если orient равно ‘tight’) в возвращаемый словарь. Может быть только
Falseпри orient равно ‘split’ или ‘tight’.Добавлена в версии 2.0.0.
- Returns:
-
- dict, list or 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(<class 'list'>, {'col1': 1, 'col2': 0.5}), defaultdict(<class 'list'>, {'col1': 2, 'col2': 0.75})]
© 2008–2022, 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/2.2.2/reference/api/pandas.DataFrame.to_dict.html