"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 crear un marco de datos de Pandas a partir de un diccionario con diferentes longitudes de matriz?

¿Cómo crear un marco de datos de Pandas a partir de un diccionario con diferentes longitudes de matriz?

Publicado el 2024-11-09
Navegar:761

How to Create a Pandas DataFrame from a Dictionary with Varying Array Lengths?

Creación de marcos de datos a partir de diccionarios con longitudes de entrada desiguales

En Python, es posible crear un marco de datos a partir de un diccionario donde cada entrada contiene una matriz Numpy. Sin embargo, surgen desafíos cuando las longitudes de la matriz varían entre las entradas. De forma predeterminada, Pandas requiere matrices de longitud uniforme, lo que genera errores como "ValueError: todas las matrices deben tener la misma longitud".

Superación de la discrepancia de longitud

Para abordar En este problema, podemos aprovechar la capacidad de Pandas para usar valores NaN (Not-a-Number) como marcadores de posición para los datos faltantes. Al utilizar esto, podemos crear efectivamente un DataFrame con columnas de diferentes longitudes.

Para lograr esto, podemos convertir cada entrada del diccionario en una serie Pandas, una matriz unidimensional que puede manejar sin problemas los valores faltantes. Al envolver los elementos del diccionario en una expresión generadora y usar el constructor Serie, podemos crear un diccionario de objetos Serie.

import pandas as pd
import numpy as np

# Sample data with uneven array lengths
data = {
    'A': np.random.randn(5),
    'B': np.random.randn(8),
    'C': np.random.randn(4)
}

# Convert dictionary items to Series
series_dict = dict((k, pd.Series(v)) for k, v in data.items())

# Create DataFrame from the dictionary of Series
df = pd.DataFrame(series_dict)

Resultado:

In [1]: df
Out[1]:
        A         B         C
0  1.162543  1.681243  0.191287
1  0.459621  -0.141198 -0.109864
2  -0.866704 -0.128677  -0.511496
3  1.222436  -0.371449 -0.705894
4  -0.980584  1.255133       NaN
5        NaN -0.351051       NaN
6        NaN  0.443017       NaN
7        NaN -1.053693       NaN

Como es evidente, el DataFrame contiene valores faltantes (NaN) donde las longitudes de la matriz difieren, lo que nos permite crear un DataFrame con diferentes longitudes de columna a partir de un diccionario con diferentes longitudes de matriz.

Ú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