Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!