Ferragens  
 
Rede de conhecimento computador >> Ferragens >> Mainframes >> Content
Como posso criar e manipular um quadro de dados 3D do Pandas 3D com eficiência?
Os pandas não suportam diretamente os quadros de dados 3D. A estrutura fundamental de um quadro de dados de pandas é bidimensional (linhas e colunas). Para representar dados 3D, você precisa usar uma abordagem diferente, normalmente uma delas:

1. Dados do painel (depreciado, mas conceitualmente relevante):

Os pandas costumavam ter um objeto `painel`, mas ele está preguiçoso. Era essencialmente um contêiner para vários quadros de dados. Embora não seja diretamente utilizável agora, ajuda a entender a abordagem conceitual:imagine cada quadro de dados representando uma fatia ao longo de uma dimensão.

2. Usando um único dataframe com um multiindex:

Este é o método mais eficiente e recomendado. Você cria um multiindex para que suas colunas representem a terceira dimensão.

`` `Python
importar pandas como PD
importar numpy como np

Dados 3D da amostra (2x3x4)


data_3d =np.random.rand (2, 3, 4)

Crie um multiindex para as colunas


Matrizes =[
['A', 'a', 'b', 'b', 'c', 'c'], # camada 1
['X', 'y', 'x', 'y', 'x', 'y'] # camada 2
]
Tuplas =Lista (ZIP (*Matrizes))
Índice =pd.multiindex.from_tuples (tuplas, nomes =['camada1', 'camada2']))


Remodapa os dados em uma matriz 2D adequada para um DataFrame


data_2d =data_3d.rehape (2, 6)


Crie o DataFrame com o MultiIndex


df =pd.dataframe (data_2d, index =range (2), colunas =index)
Impressão (DF)


Acessando dados:


Print ("\ Naccessing elemento em camada1 ='a', camada2 ='x', linha 0:")
print (df.loc [0, ('a', 'x')]))

Acessando uma fatia:


print ("\ Naccessing todos os dados para camada1 ='a':")
print (df.loc [:, 'a'])

#Adding uma nova camada (camada3):

#Noed para reestruturar os dados para este
new_data_3d =np.random.rand (2,3,4,2) #Aded uma dimensão
new_data_2d =new_data_3d.rehape (2,12)

Matrizes =[
['A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B'], # Camada 1
['X', 'y', 'x', 'y', 'x', 'y', 'x', 'y', 'x', 'y', 'x', 'y'] # camada 2
, ['Z1', 'Z1', 'Z1', 'Z1', 'Z1', 'Z1', 'Z1', 'Z1', 'Z1', 'Z1', 'Z1', 'Z1'] # Layer 3
]
Tuplas =Lista (ZIP (*Matrizes))
índice =pd.multiindex.from_tuples (tuplas, nomes =['camada1', 'camada2', 'camada3']))
df_new =pd.dataframe (new_data_2d, index =range (2), colunas =index)
print ("\ ndataframe com uma nova camada3:")
Imprimir (df_new)

`` `


3. Usando um dicionário de dados de dados:

Isso é menos eficiente que um multiindex, mas oferece mais flexibilidade para cenários complexos.

`` `Python
dados ={}
para i no intervalo (2):
dados [i] =pd.dataframe (np.random.rand (3, 4))

Acessando dados:


Imprimir (dados [0])
`` `

Escolhendo a abordagem correta:

* MultiIndex: O melhor para a maioria dos casos, oferece bom desempenho e acesso eficiente de dados se sua terceira dimensão for relativamente pequena a moderada.
* Dicionário de DataFrames: Melhor se você tiver um número significativamente maior de "camadas" em seus dados 3D ou se suas camadas diferentes têm estruturas muito diferentes.


Lembre -se de considerar cuidadosamente como você acessará e manipulará seus dados assim que estiverem estruturados de uma dessas maneiras. A abordagem multiindex é geralmente preferível devido à sua eficiência e às capacidades internas dos pandas para trabalhar com multiindexos. Para conjuntos de dados muito grandes, considere o uso do DASK ou VAEX projetados para computação fora do núcleo.

Anterior :

Próximo :
  Os artigos relacionados
·História Processador Intel Pentium III 
·Diferentes tipos de velhos mainframes 
·O que é um IBM MIPS de mainframe 
·Quais são os dois componentes principais em um ambient…
·3 componentes básicos de um sistema de computador? 
·O que é mainframe? 
·História e Gerações de Computadores 
·Quais são o sistema operacional básico de computador …
·O que é Administração do Sistema AS400 
·Quais são as características do quadro principal? 
  Artigos em destaque
·Como redefinir uma Laserjet 5550N HP 
·Como exibir BIOS em um Toshiba A45- S120 
·Você pode usar um 512MB 2RX16 PC2-5300S-555-12 no seu …
·Como estender a vida de um Laptop de iões de lítio 
·Como substituir memória em um Notebook Gateway ML3109 
·Como expressar o log em uma TI-89 
·Como Chegar Pixel Shader 
·Como atualizar um processador Sonnet G4 
·Como reparar e limpar um drive DVD 
·Como atualizar uma placa de vídeo em um Gateway M- 686…
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados