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.

Conversión compleja de una lista infinita en un DataFrame

Una lista contiene contenido en el siguiente formato:

[{'m': {'name': 'esl',
   'type': 'FS',
   'env': 'C1',
   'service': 'None',
   'ins': '1'},
  'value': [17, 'NaN']},
 {'m': {'name': 'esl',
   'type': 'FS',
   'env': 'C1',
   'service': 'CBA',
   'instance': '10'},
  'value': [147, 'NaN']},
 {'m': {'name': 'esl',
   'type': 'FS',
   'env': 'C1',
   'service': 'CBA',
   'instance': '12'},
  'value': [16, 'NaN']}]

Hay n número de elementos en la lista.

Se necesita una conversión de lista a dataframe, el resultado deseado debería tener los siguientes nombres de columna:

name, type, env, service, ins, value

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para convertir la lista dada en un dataframe con nombres de columnas deseados, podemos utilizar la biblioteca pandas en Python. Primero, necesitamos importar la biblioteca pandas:

    import pandas as pd
    

    Luego, podemos crear una nueva lista con diccionarios que contengan los valores mapeados a los nombres de columna deseados:

    new_list = []
    for item in list_name:
        temp_dict = {'name': item['m'].get('name'),
                     'type': item['m'].get('type'),
                     'env': item['m'].get('env'),
                     'service': item['m'].get('service'),
                     'ins': item['m'].get('instance'),
                     'value': item['value']}
        new_list.append(temp_dict)
    

    Este código itera a través de la lista inicial, extrae los valores para cada nombre de columna de los diccionarios anidados y crea un nuevo diccionario con los valores mapeados a los nombres de columna deseados. Luego, el nuevo diccionario se agrega a la nueva lista.

    Finalmente, usamos la función DataFrame de pandas para crear un dataframe a partir de la nueva lista:

    df = pd.DataFrame(new_list)
    

    El dataframe resultante tendrá los nombres de columna deseados y los valores extraídos de la lista inicial.

Comments are closed.