Панды 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')
Другие вопросы по тегам