cómo convertir este JSON nested en forma de columnas en el dataframe de Pandas

Podría leer este formato JSON nested en formato de columnas en pandas.

Esquema de JSON

Formato de esquema JSON

introduzca la descripción de la imagen aquí

Script en Python

req = requests.get(REQUEST_API) returned_data = json.loads(req.text) # status print("status: {0}".format(returned_data["status"])) # api version print("version: {0}".format(returned_data["version"])) data_in_columnar_form = pd.DataFrame(returned_data["data"]) data = data_in_columnar_form["data"] 

ACTUALIZAR

Quiero convertir el siguiente esquema JSON al formato tabular como la tabla, ¿cómo?

en línea

Esquema de JSON

  "data":[ { "year":"2009", "values":[ { "Actual":"(0.2)" }, { "Upper End of Range":"-" }, { "Upper End of Central Tendency":"-" }, { "Lower End of Central Tendency":"-" }, { "Lower End of Range":"-" } ] }, { "year":"2010", "values":[ { "Actual":"2.8" }, { "Upper End of Range":"-" }, { "Upper End of Central Tendency":"-" }, { "Lower End of Central Tendency":"-" }, { "Lower End of Range":"-" } ] },... ] 

Pandas tiene una función de normalización JSON (a partir de 0.13), directamente de la documentación:

 In [205]: from pandas.io.json import json_normalize In [206]: data = [{'state': 'Florida', .....: 'shortname': 'FL', .....: 'info': { .....: 'governor': 'Rick Scott' .....: }, .....: 'counties': [{'name': 'Dade', 'population': 12345}, .....: {'name': 'Broward', 'population': 40000}, .....: {'name': 'Palm Beach', 'population': 60000}]}, .....: {'state': 'Ohio', .....: 'shortname': 'OH', .....: 'info': { .....: 'governor': 'John Kasich' .....: }, .....: 'counties': [{'name': 'Summit', 'population': 1234}, .....: {'name': 'Cuyahoga', 'population': 1337}]}] .....: In [207]: json_normalize(data, 'counties', ['state', 'shortname', ['info', 'governor']]) Out[207]: name population info.governor state shortname 0 Dade 12345 Rick Scott Florida FL 1 Broward 40000 Rick Scott Florida FL 2 Palm Beach 60000 Rick Scott Florida FL 3 Summit 1234 John Kasich Ohio OH 4 Cuyahoga 1337 John Kasich Ohio OH