es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Indexar JSON por condición

Me gustaría indexar esta respuesta JSON y obtener el atributo de valor por datetime solo para un geo_nombre (‘US’) en un diccionario o un dataframe de pandas.

Hasta ahora he intentado esto, pero no sé cómo indexar y filtrar la respuesta para mostrar solo un geo_nombre por hora.

json_data = json.loads(response.text)
values = json_data['indicator']['values']
prices = [x['value'] for x in values]
geos = [x['geo_name'] for x in values]
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para indexar esta respuesta JSON y filtrar por datetime para solo un geo_name (‘US’) en un diccionario / dataframe de pandas, podemos utilizar pandas para crear un dataframe a partir de la respuesta JSON y luego filtrar por el geo_name y datetime deseado.

    Suponiendo que la respuesta JSON se almacena en la variable response, el siguiente fragmento de código debería funcionar:

    import pandas as pd
    import json
    
    # Cargar la respuesta JSON como un diccionario
    json_data = json.loads(response.text)
    
    # Convertir la respuesta JSON a un DataFrame de Pandas
    df = pd.json_normalize(json_data['indicator']['values'])
    
    # Filtrar por geo_name y datetime
    us_data = df[(df['geo_name'] == 'US') & (df['datetime'] == '2022-01-06T01:00:00.000+01:00')]
    
    # Obtener el atributo valor para los datos filtrados
    value = us_data['value'].values[0]
    
    # Imprimir el atributo valor para los datos filtrados
    print(value)
    

    Este fragmento de código asume que solo hay un punto de datos para la combinación deseada de geo_name y datetime. Si hay varios puntos de datos, es posible que deba ajustar el código en consecuencia.

Comments are closed.