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 |
items | axis=0 |
major_axis | axis=1 |
minor_axis | axis=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