Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
Diccionario de listas a dataframe

Tengo un diccionario con cada tecla que contiene una lista de valores flotantes. Estas listas no son del mismo tamaño.

Me gustaría convertir este diccionario en un marco de datos de pandas para poder realizar algunas funciones de análisis en los datos fácilmente, como (mínimo, máximo, promedio, desviación estándar, más).

Mi diccionario se ve así:

 { 'key1': [10, 100.1, 0.98, 1.2], 'key2': [72.5], 'key3': [1, 5.2, 71.2, 9, 10.11, 12.21, 65, 7] }

¿Cuál es la mejor manera de incluir esto en un marco de datos para que pueda utilizar funciones básicas como sum , mean , describe , std ?

Los ejemplos que encuentro (como el enlace anterior), asumen que cada una de las claves tiene la misma cantidad de valores en la lista.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

d={ 'key1': [10, 100.1, 0.98, 1.2], 'key2': [72.5], 'key3': [1, 5.2, 71.2, 9, 10.11, 12.21, 65, 7] } df=pd.DataFrame.from_dict(d,orient='index').transpose()

Entonces df es

 key3 key2 key1 0 1.00 72.5 10.00 1 5.20 NaN 100.10 2 71.20 NaN 0.98 3 9.00 NaN 1.20 4 10.11 NaN NaN

Tenga en cuenta que numpy tiene algunas funciones integradas que pueden hacer cálculos ignorando los valores de NaN , que pueden ser relevantes aquí. Por ejemplo, si desea encontrar la media de la columna 'key1' , puede hacerlo de la siguiente manera:

 import numpy as np np.nanmean(df[['key1']]) 28.07

Otras funciones útiles incluyen numpy.nanstd, numpy.nanvar, numpy.nanmedian, numpy.nansum .

EDITAR: tenga en cuenta que las funciones de su enlace de funciones básicas también pueden manejar valores nan . Sin embargo, sus estimadores pueden ser diferentes de los de numpy. Por ejemplo, calculan el estimador imparcial de la varianza de la muestra , mientras que la versión numpy calcula el estimador "habitual" de la varianza de la muestra .

over 4 years ago · Santiago Trujillo Denunciar

0

your_dict = { 'key1': [10, 100.1, 0.98, 1.2], 'key2': [72.5], 'key3': [1, 5.2, 71.2, 9, 10.11, 12.21, 65, 7] } pd.concat({k: pd.Series(v) for k, v in your_dict.items()}) key1 0 10.00 1 100.10 2 0.98 3 1.20 key2 0 72.50 key3 0 1.00 1 5.20 2 71.20 3 9.00 4 10.11 5 12.21 6 65.00 7 7.00 dtype: float64

O con axis=1

 your_dict = { 'key1': [10, 100.1, 0.98, 1.2], 'key2': [72.5], 'key3': [1, 5.2, 71.2, 9, 10.11, 12.21, 65, 7] } pd.concat({k: pd.Series(v) for k, v in your_dict.items()}, axis=1) key1 key2 key3 0 10.00 72.5 1.00 1 100.10 NaN 5.20 2 0.98 NaN 71.20 3 1.20 NaN 9.00 4 NaN NaN 10.11 5 NaN NaN 12.21 6 NaN NaN 65.00 7 NaN NaN 7.00
over 4 years ago · Santiago Trujillo Denunciar

0

Le sugiero que simplemente cree un dictado de Serie, ya que sus claves no tienen la misma cantidad de valores:

 { key: pd.Series(val) for key, val in x.items() }

Luego puede hacer operaciones de Pandas en cada columna individualmente.

Una vez que tenga eso, si realmente quiere un DataFrame, puede:

 pd.DataFrame({ key: pd.Series(val) for key, val in x.items() }) key1 key2 key3 0 10.00 72.5 1.00 1 100.10 NaN 5.20 2 0.98 NaN 71.20 3 1.20 NaN 9.00 4 NaN NaN 10.11 5 NaN NaN 12.21 6 NaN NaN 65.00 7 NaN NaN 7.00
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda