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.