Pandas中的分层数据

  • Post category:Python

Pandas是一个Python用于数据处理和分析的开源软件库,Pandas中的分层数据也称为层级索引。

层级索引允许我们在Pandas中将一维数据(Series)或二维数据(DataFrame)的索引进行多级分类。这些层级分类的好处是可以允许我们按照多种维度进行切片和选择数据。

以下是一个创建层级索引的例子,我们以一个DataFrame为例:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    data=np.random.randn(4, 2),
    columns=[['A', 'A', 'B', 'B'], ['X', 'Y', 'X', 'Y']],
    index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]]
)

以上代码创建了一个数据框(DataFrame)df,它有两个列(A和B),每个列都有两个级别(X、Y),它有两个索引(a、b)和它们下面的两个索引值(1、2)。

         A                   B          
         X         Y         X         Y
a 1  0.511274 -0.501607  2.609682  0.319289
  2 -0.738602 -0.358021 -0.813154 -0.464640
b 1  0.731830  0.383792  0.841428 -0.050276
  2 -0.836634 -0.934887  0.087440  0.420400

在这个例子中,我们可以看到索引分为两个等级。 第一级是a, b -行标签,第二级是在每个行标签下的 12

接下来,我们使用loc查询多级索引的值:

# 查询 a 这个行对应的 1 所在的值
df.loc[('a', 1)]

# 查询 a,b 这两个行对应的 Y 列所在的值
df.loc[(['a', 'b'], ), ('A', 'Y')]

这样,我们就可以轻松地将数据根据多个级别进行切片、选择和处理。实际上,层级索引是一个非常强大且灵活的功能,允许我们更好地控制我们的数据的结构和内容。