DataFrame.to_dict() / Series.to_dict()

Метод to_dict() конвертирует DataFrame или Series в обычный словарь Python. Удобно при подготовке данных для REST API, отправки на ESP32 по HTTP или сохранения в JSON.

Сигнатура

DataFrame.to_dict(orient="dict")
Series.to_dict()

Параметры

  • orient (DataFrame) — формат:

    • "dict" — {column: {index: value}} (по умолчанию);

    • "list" — {column: [values]};

    • "records" — [{column: value}, ...];

    • "index" — {index: {column: value}};

    • "split" — словарь с ключами index, columns, data;

    • "tight" — расширенный split с многоуровневыми индексами.

Возвращаемое значение

Словарь (или список словарей) Python.

Примеры

Пример 1. Series в словарь

import pandas as pd

s = pd.Series([23.5, 24.1, 22.8], index=["A0", "A1", "A2"])
print(s.to_dict())
{'A0': 23.5, 'A1': 24.1, 'A2': 22.8}

Пример 2. DataFrame, orient=»dict»

import pandas as pd

df = pd.DataFrame({"pin": ["A0", "A1"], "value": [512, 600]})
print(df.to_dict())
{'pin': {0: 'A0', 1: 'A1'}, 'value': {0: 512, 1: 600}}

Пример 3. orient=»records» для REST API

import pandas as pd

df = pd.DataFrame({"pin": ["A0", "A1"], "value": [512, 600]})
print(df.to_dict(orient="records"))
[{'pin': 'A0', 'value': 512}, {'pin': 'A1', 'value': 600}]

Пример 4. orient=»list»

import pandas as pd

df = pd.DataFrame({"x": [1, 2, 3], "y": [10, 20, 30]})
print(df.to_dict(orient="list"))
{'x': [1, 2, 3], 'y': [10, 20, 30]}

Пример 5. Отправка через requests

import pandas as pd
import json

df = pd.DataFrame({"temp": [23.5], "hum": [45]})
payload = df.to_dict(orient="records")[0]
print(json.dumps(payload))
{"temp": 23.5, "hum": 45}

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.