Pandas Panel

Pandas Panel基本操作

Panel数据3D容器. 术语 Panel data 源自计量经济学,名称来之于pandas − pan(el)-da(ta)-s.

3个轴的名称描述如下- −

items − 轴0,每个items都对应一个包含在其中的DataFrame。

major_axis − 轴1,它是每个DataFrame的索引(行)。

minor_axis − 轴2,它是每个DataFrame的列。

pandas.Panel()

面板可以使用以下构造函数创建- −

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

构造函数的参数如下:

参数描述
data数据采用各种形式,例如ndarray,series,map,list,dict,常量以及DataFrame
itemsaxis=0
major_axisaxis=1
minor_axisaxis=2
dtype每列的数据类型
copy复制数据。默认 false

创建 Panel

面板可以使用多种方式创建,例如:

从 ndarrays 创建从 DataFrame的字典创建

从ndarrays创建

#创建一个空panelimportpandasaspdimportnumpyasnpdata=np.random.rand(2,4,5)p=pd.Panel(data)print(p)

运行结果如下:

<class'pandas.core.panel.Panel'>Dimensions:2(items)x4(major_axis)x5(minor_axis)Itemsaxis:0to1Major_axisaxis:0to3Minor_axisaxis:0to4

从 DataFrame的字典创建

#创建一个空panelimportpandasaspdimportnumpyasnpdata={'Item1':pd.DataFrame(np.random.randn(4,3)),'Item2':pd.DataFrame(np.random.randn(4,2))}p=pd.Panel(data)print(p)

运行结果:

Dimensions:2(items)x4(major_axis)x3(minor_axis)Itemsaxis:Item1toItem2Major_axisaxis:0to3Minor_axisaxis:0to2

创建一个空Panel

可以使用Panel构造函数创建一个空面板,如下所示:

#创建一个空panelimportpandasaspdp=pd.Panel()print(p)

运行结果:

<class'pandas.core.panel.Panel'>Dimensions:0(items)x0(major_axis)x0(minor_axis)Itemsaxis:NoneMajor_axisaxis:NoneMinor_axisaxis:None

从Panel中查询数据

可以用以下三项从panel中查询数据:

ItemsMajor_axisMinor_axis

用 Items查询

#创建一个空panelimportpandasaspdimportnumpyasnpdata={

运行结果:

01200.488224-0.1286370.93081710.4174970.8966810.5766572-2.7752660.5716680.2900823-0.400538-0.1442341.110535

从两个item中查询item1,输出的结果是一个具有4行3列的DataFrame,分别是Major_axis和Minor_axis。

用major_axis查询

可以使用panel.major_axis(index)方法访问数据.

#创建一个空panelimportpandasaspdimportnumpyasnpdata={'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))

运行结果:

Item1Item200.4174970.74841210.896681-0.55732220.576657NaN

用 minor_axis查询

可以使用panel.minor_axis(index)方法访问数据。

#创建一个空panelimportpandasaspdimportnumpyasnpdata={'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))

运行结果:

Item1Item20-0.128637-1.04703210.896681-0.55732220.5716680.4319533-0.1442341.302466
编辑于2024-05-20 15:58