Pandas Panel的用法(附带实例)
Pandas 的 Panel(面板)是 3D 容器的数据,3 个轴的名称描述如下:
Panel 可以使用以下构造函数创建:
【实例】使用 Panel 的构造函数创建一个空面板。
【实例】使用 ndarray 创建面板。
【实例】从 DataFrame 字典创建面板。
【实例】在 Panel 中用 Items 查询数据。
【实例】利用 major_axis 及 minor_axis 查询数据。
- items-axis 0,每个项目对应于内部包含的数据帧(DataFrame);
- major_axis-axis 1,它是每个数据帧的索引(行);
- minor_axis-axis 2,它是每个数据帧的列。
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。
Pandas Panel的创建
Panel 可以使用多种方式创建,例如:- 从 ndarrays 创建;
- 从 DataFrame 的字典创建。
【实例】使用 Panel 的构造函数创建一个空面板。
import pandas as pd p = pd.Panel() print(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
【实例】使用 ndarray 创建面板。
import pandas as pd import numpy as np data = np.random.rand(2, 6, 8) p = pd.Panel(data) print(p)运行程序,输出如下:
<class 'pandas.core.panel.Panel'> Dimensions: 2 (items) x 6 (major_axis) x 8 (minor_axis) Items axis: 0 to 1 Major_axis axis: 0 to 5 Minor_axis axis: 0 to 7
【实例】从 DataFrame 字典创建面板。
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)运行程序,输出如下:
<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
Pandas Panel查询数据
在 Python 中,可以用 Items、Major_axis、Minor_axis 从 Panel 中查询数据。【实例】在 Panel 中用 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) print(p['Item1'])运行程序,输出如下:
0 1 2 0 -0.465420 0.095514 -0.193986 1 0.019724 -0.214586 -0.295068 2 0.478833 1.19644 -1.897276 3 0.001445 -0.242203 0.015988从两个 item 中查询 item1,输出的结果是一个具有 4 行 3 列的 DataFrame,分别是 Major_axis 和 Minor_axis。
【实例】利用 major_axis 及 minor_axis 查询数据。
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("使用 panel.major_axis 查询数据:") print(p.major_xs(1)) print("使用 panel.minor_axis 查询数据:") print(p.minor_xs(1))运行程序,输出如下:
使用 panel.major_axis 查询数据: Item1 Item2 0 -1.342838 0.648913 1 0.571448 -2.392714 2 1.550796 NaN 使用 panel.minor_axis 查询数据: Item1 Item2 0 -0.973440 -0.729345 1 0.571448 -2.392714 2 -1.472049 1.305073 3 0.944601 -0.897651