Em Python, é possível criar um DataFrame a partir de um dicionário onde cada entrada contém um array Numpy. No entanto, surgem desafios quando os comprimentos da matriz variam entre as entradas. Por padrão, o Pandas exige matrizes de comprimento uniforme, levando a erros como "ValueError: as matrizes devem ter todas o mesmo comprimento." Neste problema, podemos aproveitar a capacidade do Pandas de usar valores NaN (Not-a-Number) como espaços reservados para dados ausentes. Ao utilizar isso, podemos criar efetivamente um DataFrame com colunas de comprimentos diferentes.
Para conseguir isso, podemos converter cada entrada do dicionário em uma série Pandas, uma matriz unidimensional que pode lidar perfeitamente com valores ausentes. Envolvendo os itens do dicionário em uma expressão geradora e usando o construtor Series, podemos criar um dicionário de objetos Series.importar pandas como pd importar numpy como np # Dados de amostra com comprimentos de matriz desiguais dados = { 'A': np.random.randn(5), 'B': np.random.randn(8), 'C': np.random.randn(4) } # Converte itens de dicionário em séries series_dict = dict((k, pd.Series(v)) para k, v em data.items()) # Cria um DataFrame a partir do dicionário de séries df = pd.DataFrame(series_dict)
Resultado: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)
Como é evidente, o DataFrame contém valores ausentes (NaN) onde os comprimentos do array diferem, permitindo-nos criar um DataFrame com diferentes comprimentos de coluna a partir de um dicionário com comprimentos de array variados.
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