Python Pandas — Panel

Vijay Sharma
3 min readJun 5, 2021

--

Panel in Python Pandas | Insideaiml
Panel in Python Pandas | Insideaiml

The panel is a 3D data container. The term Panel data is based on econometrics.

The names of the 3 axes are designed to provide a specific semantic meaning in describing an operation that includes panel data. those are -

  • items − It is axis 0, each item resembles the DataFrame contained within.
  • major_axis − It is axis 1, the index (rows) of each of DataFrame.
  • minor_axis −It is axis 2, the columns of each of the DataFrame.

Panel in Pandas

The following constructor is used to create Panels in pandas.

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

Pandas Panel Parameters −

Parameters of the constructor | insideaiml
Parameters of the constructor | insideaiml

Recommended blog for you: Python Pandas- DataFrame

Create Panel in Pandas

There are different ways to create Panel in pandas −

  • From 3D ndarrays
  • From the dictionary of DataFrames object

Creating an empty panel

import pandas as pd
import numpy as np

emptyPanel = pd.Panel()
emptyPanel

Output -

Dimensions: 0 (items) x 0 (major_axis) x 0 (minor_axis)
Items axis: none
Major_axis axis: none
Minor_axis axis: none

Create Panel From 3D ndarray

import pandas as pd
import numpy as np

dataItems = np.random.rand(3,5,6)
panelData = pd.Panel(dataItems)
print(panelData)

Output

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

Create Panel From dict of DataFrame Objects

import pandas as pd
import numpy as np

insideaiml_dict = {'key1' : pd.DataFrame(np.random.randn(5, 6)),
'key2' : pd.DataFrame(np.random.randn(5, 3))}
panelData = pd.Panel(insideaiml_dict)
print(panelData)

Its output is as follows −

Dimensions: 2 (items) x 5 (major_axis) x 6 (minor_axis)
Items axis: key1 to key2
Major_axis axis: 0 to 4
Minor_axis axis: 0 to 5

Data Selection From Panel

Data selection from the panel −

  • Items
  • Major_axis
  • Minor_axis

Using Items

import pandas as pd
import numpy as np
insideaiml_data = {'key1' : pd.DataFrame(np.random.randn(5, 4)),
'key2' : pd.DataFrame(np.random.randn(4, 3))}
panelData = pd.Panel(insideaiml_data )
print (panelData ['key1'])

Its output is as follows −

0         1         2         3
0 0.166712 -0.829255 -1.487678 0.437197
1 0.135945 -0.452119 -0.832342 1.460357
2 0.688532 -0.704603 -1.204584 1.011151
3 1.455288 0.830276 0.822264 -0.385821
4 0.299957 -0.663821 -0.704605 -0.303356

Using major_axis

Data accessed using the panel.major_axis(index) method

import pandas as pd
import numpy as np
insideaiml_data = {'key1' : pd.DataFrame(np.random.randn(5, 4)),
'key2' : pd.DataFrame(np.random.randn(5, 3))}
panelData = pd.Panel(insideaiml_data)
print(panelData.major_xs(1))

Its output is as follows −

key1      key2
0 1.417978 1.391994
1 0.009445 0.375496
2 0.834670 -0.677597
3 0.121576 NaN

Using minor_axis

Data accessed using panel.minor_axis(index) method.

import pandas as pd
import numpy as np
insideaiml_data = {'key1' : pd.DataFrame(np.random.randn(5, 4)),
'key2' : pd.DataFrame(np.random.randn(5, 3))}
panelData = pd.Panel(insideaiml_data)
print(panelData.minor_xs(1))

Its output is as follows −

key1      key2
0 0.325758 -1.526423
1 0.778292 0.936562
2 0.202640 -0.168996
3 -0.448355 0.210160
4 0.188512 -0.215780

I hope you enjoyed reading this article and finally, you came to know about Python Pandas — Panel

For more such blogs/courses on data science, machine learning, artificial intelligence, and emerging new technologies do visit us at InsideAIML.

Thanks for reading…

Happy Learning…

Recommended course for you :

Machine Learning With Python & Statistics

Recommended blogs for you :

Discuss Python Pandas

Reindexing in Python Pandas

Python Pandas — Missing Data

Python Pandas — Iteration

Python Pandas — Timedelta

--

--

Vijay Sharma
Vijay Sharma

Written by Vijay Sharma

World’s Best AI Learning Platform with Profoundly Demanding Certification Programs Designed By IITian’s, only for AI learners

No responses yet