Python Pandas - Panel

UN paneles un contenedor de datos 3D. El terminoPanel data se deriva de la econometría y es parcialmente responsable del nombre pandas - pan(el)-da(ta)-s.

Los nombres de los 3 ejes están destinados a dar algún significado semántico a la descripción de operaciones que involucran datos de panel. Ellos son -

  • items - eje 0, cada elemento corresponde a un DataFrame contenido en su interior.

  • major_axis - eje 1, es el índice (filas) de cada uno de los DataFrames.

  • minor_axis - eje 2, son las columnas de cada uno de los DataFrames.

pandas.Panel ()

Se puede crear un Panel usando el siguiente constructor:

pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)

Los parámetros del constructor son los siguientes:

Parámetro Descripción
datos Los datos toman varias formas como ndarray, series, mapas, listas, dict, constantes y también otro DataFrame
artículos eje = 0
eje_mayor eje = 1
eje_minor eje = 2
dtype Tipo de datos de cada columna
Copiar Copiar datos. Defecto,false

Crear panel

Un panel se puede crear usando varias formas como:

  • De ndarrays
  • De dict de DataFrames

Desde 3D ndarray

# creating an empty panel
import pandas as pd
import numpy as np

data = np.random.rand(2,4,5)
p = pd.Panel(data)
print p

Sus output es como sigue -

<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 4 (major_axis) x 5 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 0 to 3
Minor_axis axis: 0 to 4

Note - Observe las dimensiones del panel vacío y el panel de arriba, todos los objetos son diferentes.

De dict of DataFrame Objects

#creating an empty panel
import pandas as pd
import numpy as np

data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
   'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p

Sus output es como sigue -

Dimensions: 2 (items) x 4 (major_axis) x 3 (minor_axis)
Items axis: Item1 to Item2
Major_axis axis: 0 to 3
Minor_axis axis: 0 to 2

Crear un panel vacío

Se puede crear un panel vacío usando el constructor Panel de la siguiente manera:

#creating an empty panel
import pandas as pd
p = pd.Panel()
print p

Sus output es como sigue -

<class 'pandas.core.panel.Panel'>
Dimensions: 0 (items) x 0 (major_axis) x 0 (minor_axis)
Items axis: None
Major_axis axis: None
Minor_axis axis: None

Seleccionar los datos del panel

Seleccione los datos del panel usando -

  • Items
  • Major_axis
  • Minor_axis

Usar elementos

# creating an empty panel
import pandas as pd
import numpy as np
data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
   'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p['Item1']

Sus output es como sigue -

0          1          2
0    0.488224  -0.128637   0.930817
1    0.417497   0.896681   0.576657
2   -2.775266   0.571668   0.290082
3   -0.400538  -0.144234   1.110535

Tenemos dos elementos y recuperamos el elemento 1. El resultado es un DataFrame con 4 filas y 3 columnas, que son lasMajor_axis y Minor_axis dimensiones.

Usando major_axis

Se puede acceder a los datos utilizando el método panel.major_axis(index).

# creating an empty panel
import pandas as pd
import numpy as np
data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
   'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p.major_xs(1)

Sus output es como sigue -

Item1       Item2
0   0.417497    0.748412
1   0.896681   -0.557322
2   0.576657       NaN

Usando minor_axis

Se puede acceder a los datos utilizando el método panel.minor_axis(index).

# creating an empty panel
import pandas as pd
import numpy as np
data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
   'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p.minor_xs(1)

Sus output es como sigue -

Item1       Item2
0   -0.128637   -1.047032
1    0.896681   -0.557322
2    0.571668    0.431953
3   -0.144234    1.302466

Note - Observe los cambios en las dimensiones.