学习汇总:点这里
面板(Panel)是3D容器的数据。面板数据一词来源于计量经济学,部分源于名称:Pandas - pan(el)-da(ta)-s。
3轴(axis)这个名称旨在给出描述涉及面板数据的操作的一些语义。它们是 -
- items - axis 0,每个项目对应于内部包含的数据帧(DataFrame)。
- major_axis - axis 1,它是每个数据帧(DataFrame)的索引(行)。
- minor_axis - axis 2,它是每个数据帧(DataFrame)的列。
pandas.Panel()
可以使用以下构造函数创建面板 -
pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)
Python构造函数的参数如下 :
参数 | 描述 |
---|---|
data | 数据采取各种形式,如:ndarray,series,map,lists,dict,constant和另一个数据帧(DataFrame) |
items | axis=0 |
major_axis | axis=1 |
minor_axis | axis=2 |
dtype | 每列的数据类型 |
copy | 复制数据,默认 - false |
创建面板
可以使用多种方式创建面板 :
- 从ndarrays创建
- 从DataFrames的dict创建
1.从3D ndarray创建
>>>import pandas as pd
>>>import numpy as np
>>>data = np.random.rand(2,4,5)
>>>p = pd.Panel(data)
>>>p
<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
2.从DataFrame对象的dict创建面板
>>>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)
>>>p
<class 'pandas.core.panel.Panel'>
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
3.创建一个空面板
>>>import pandas as pd
>>>p = pd.Panel()
>>>p
<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
从面板中选择数据
要从面板中选择数据,可以使用以下方式 :
- Items
- Major_axis
- Minor_axis
1.使用Items
>>>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)
>>>p['Item1']
0 1 2
0 1.680050 -0.131174 2.062063
1 -1.876838 0.410399 0.575084
2 0.997676 0.630704 -1.150107
3 -1.571193 -2.038553 -1.372589
2.使用major_axis(可以使用panel.major_axis(index)方法访问数据)。
>>>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)
>>>p.major_xs(1)
Item1 Item2
0 -1.341500 -1.452453
1 0.592554 1.058616
2 -0.456414 NaN
3.使用minor_axis(可以使用panel.minor_axis(index)方法访问数据)。
>>>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)
>>>p.minor_xs(1)
Item1 Item2
0 0.314772 0.316735
1 -1.129884 -0.294042
2 -0.066124 -0.910311
3 0.470638 -0.427183