"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo construir marcos de datos de Pandas a partir de diccionarios con longitudes de matriz desiguales?

¿Cómo construir marcos de datos de Pandas a partir de diccionarios con longitudes de matriz desiguales?

Publicado el 2024-11-14
Navegar:220

How to Construct Pandas DataFrames from Dictionaries with Uneven Array Lengths?

Construcción de marcos de datos a partir de diccionarios con longitudes de matriz desiguales

El manejo de diccionarios con matrices de longitudes desiguales en Pandas requiere un enfoque personalizado. Al intentar crear un DataFrame con cada columna representando una matriz dentro del diccionario, uno puede encontrar el ValueError: "todas las matrices deben tener la misma longitud".

Aprovechando objetos de serie

Para evitar esto problema, aprovechamos los objetos de la serie Pandas que pueden contener matrices de diferentes longitudes. Al convertir cada valor del diccionario en una Serie, podemos almacenar eficazmente las matrices independientemente de su longitud. El siguiente fragmento de código demuestra este enfoque:

import pandas as pd
import numpy as np

# Sample data generated via a reproducible seed
np.random.seed(2023)
data = {k: np.random.randn(v) for k, v in zip("ABCDEF", [10, 12, 15, 17, 20, 23])}

# Convert dictionary values to Series objects
series_dict = {k: pd.Series(v) for k, v in data.items()}

# Create DataFrame using these Series objects
df = pd.DataFrame(series_dict)

Preservar valores faltantes

Cuando se trabaja con matrices de diferentes longitudes, es común encontrar valores faltantes donde las matrices más cortas no pueden llenar las celdas restantes. De forma predeterminada, Pandas llena estos vacíos con valores NaN (no es un número). Este comportamiento preserva los datos originales al mismo tiempo que proporciona una estructura consistente para el análisis.

Configuración del manejo de valores perdidos

Si lo desea, puede personalizar el manejo de los valores perdidos usando el parámetro valores_faltantes en el marco de datos( ) constructor. Por ejemplo, para reemplazar los valores faltantes con ceros en lugar de NaN, especificaría valores_faltantes=0 como se muestra a continuación:

df = pd.DataFrame(series_dict, missing_values=0)

Resultado de ejemplo

El siguiente resultado ilustra un DataFrame creado utilizando el enfoque descrito anteriormente:

print(df)
      A         B         C         D         E         F
0  0.711674 -1.076522 -1.502178 -1.519748  0.340619  0.051132
1 -0.324485 -0.325682 -1.379593  2.097329 -1.253501 -0.238061
2 -1.001871 -1.035498 -0.204455  0.892562  0.370788 -0.208009
3  0.236251 -0.426320  0.642125  1.596488  0.455254  0.401304
4 -0.102160 -1.029361 -0.181176 -0.638762 -2.283720  0.183169
...       ...       ...       ...       ...       ...       ...
18       NaN       NaN       NaN       NaN       NaN       NaN
19       NaN       NaN       NaN       NaN       NaN       NaN
20       NaN       NaN       NaN       NaN       NaN       NaN
21       NaN       NaN       NaN       NaN       NaN       NaN
22       NaN       NaN       NaN       NaN       NaN       NaN
23 rows × 6 columns

Como puede observar, las matrices más cortas dan como resultado valores NaN en las celdas correspondientes, lo que proporciona una representación completa de sus datos y al mismo tiempo mantiene el formato tabular deseado.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3