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."
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)
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.
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)
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.
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