"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como construir DataFrames do Pandas a partir de dicionários com comprimentos de matriz desiguais?

Como construir DataFrames do Pandas a partir de dicionários com comprimentos de matriz desiguais?

Publicado em 2024-11-14
Navegar:551

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

Construindo DataFrames a partir de dicionários com comprimentos de matriz desiguais

O tratamento de dicionários com matrizes de comprimentos desiguais no Pandas requer uma abordagem personalizada. Ao tentar criar um DataFrame com cada coluna representando um array dentro do dicionário, pode-se encontrar o ValueError: "arrays must all have the same length."

Leveraging Series Objects

Para contornar isso questão, aproveitamos os objetos Series do Pandas que podem conter matrizes de comprimentos variados. Ao converter cada valor do dicionário em uma série, podemos armazenar efetivamente os arrays, independentemente de seus comprimentos. O trecho de código a seguir demonstra essa abordagem:

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)

Preservando valores ausentes

Ao trabalhar com matrizes de comprimentos variados, é comum encontrar valores ausentes onde matrizes mais curtas não conseguem preencher as células restantes. Por padrão, o Pandas preenche essas lacunas com valores NaN (não é um número). Esse comportamento preserva os dados originais enquanto fornece uma estrutura consistente para análise.

Configurando o tratamento de valores ausentes

Se desejar, você pode personalizar o tratamento de valores ausentes usando o parâmetro missing_values ​​no DataFrame( ) construtor. Por exemplo, para substituir valores ausentes por zeros em vez de NaN, você especificaria missing_values=0 conforme mostrado abaixo:

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

Example Output

A saída a seguir ilustra um DataFrame criado usando a abordagem descrita acima:

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 você pode observar, as matrizes mais curtas resultam em valores NaN nas células correspondentes, fornecendo uma representação abrangente de seus dados enquanto mantém o formato tabular desejado.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3