Criando dataframe a partir de dicionário com matrizes de comprimentos variados
O desafio apresentado é gerar um dataframe com colunas que consistem em array numpy de comprimentos variados valores extraídos de um dicionário. Para conseguir isso, vamos explorar uma solução usando Python.
No Python 3.x e superior, o seguinte trecho de código pode ser empregado:
import pandas as pd import numpy as np # Define a dictionary with key-value pairs representing numpy arrays d = { "A": np.random.randn(10), "B": np.random.randn(12), "C": np.random.randn(8) } # Create a dataframe by converting each key-value pair to a series df = pd.DataFrame( dict([ (k, pd.Series(v)) for k, v in d.items() ]) ) # Display the resulting dataframe print(df)
Este código cria um dataframe com colunas "A", "B" e "C", cada uma contendo valores de matriz numpy correspondentes do dicionário. Se os arrays tiverem comprimentos variados, ele os alinha automaticamente, estendendo os arrays mais curtos com valores NaN como preenchimento.
No Python 2.x, uma pequena modificação é necessária:
import pandas as pd import numpy as np # Define a dictionary with key-value pairs representing numpy arrays d = { "A": np.random.randn(10), "B": np.random.randn(12), "C": np.random.randn(8) } # Create a dataframe by converting each key-value pair to a series df = pd.DataFrame( dict([ (k, pd.Series(v)) for k, v in d.iteritems() ]) ) # Display the resulting dataframe print(df)
No Python 2.x, a função iteritems() é usada em vez de items() para iterar sobre pares de valores-chave no dicionário.
Ao utilizar esta abordagem, você pode criar dataframes de maneira conveniente com colunas contendo matrizes de comprimentos diferentes, garantindo que os dados sejam alinhados e manipulados adequadamente.
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