Панды OHLCV в формате JSON
У меня есть данные в реальном времени, которые я делаю повторно с пандами, чтобы получить данные OHLCV:
ohlcv = df.resample(_period).agg({'bid': 'ohlc', 'volume': 'sum'})
Фрейм данных выглядит так:
volume bid
volume open high low close
timestamp
2016-09-01 300.0 77.644997 78.320331 77.638 78.320331
и вывод JSON с использованием ohlcv.to_json(orient='index')
является:
{"1472688000000":{"["volume","volume"]":300.0,"["bid","open"]":77.644997,"["bid","high"]":78.320331,"["bid","low"]":77.638,"["bid","close"]":78.320331}}
Как я могу преобразовать фрейм данных в следующем JSON:
{
"timestamp":1472688000000,
"open":77.644997,
"high":78.320331,
"close":78.320331,
"low":77.638,
"volume":300
}
1 ответ
Решение
Использование MultiIndex.droplevel
для преобразования MultiIndex
в столбцах, чтобы сгладить столбцы:
ohlcv = df.resample(_period).agg({'bid': 'ohlc', 'volume': 'sum'})
ohlcv.columns = ohlcv.columns.droplevel(0)
ohlcv.to_json(orient='index')