首页 > 编程笔记 > Python笔记 阅读:3

Pandas Panel的用法(附带实例)

Pandas 的 Panel(面板)是 3D 容器的数据,3 个轴的名称描述如下:
Panel 可以使用以下构造函数创建:
pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)

Pandas Panel的创建

Panel 可以使用多种方式创建,例如:
【实例】使用 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

相关文章