之前有写过一点多维数据问题,但是之前没有说创建的问题,这里把两部分的内容整合一下。

关于多维度数据的创建请参考以下链接:

这里主要说一下怎么筛选多维度数据的问题,以下摘自我之前写的一篇文章:

为了更好的达到数据的分类汇总功能,pandas也准备数据透视表功能

需要说明的是:index=代表行标签,columns=代表列标签,value=代表值标签,aggfunc=代表计算方式,len代表计数

可以多个行列标签,这就对应多维数据,aggfunc使用字典方式就是分别对不同的值采用不同的计算方式。

python生成多层索引的DataFrame对象 python 多重索引_数据


python生成多层索引的DataFrame对象 python 多重索引_数据_02


那更重要的是,我们创建了数据透视表,想要使用其中的数据怎么办,也就是说,我们该怎么引用呢。

我们首先看看数据的类型结构

有意思的是,数据透视表创建的数据是Dataframe,但是值得注意的是,因为我们的行列标签是多重的,因此数据透视表是个多维数据;类型,我们可以试着用引用其中一个数据看看。

python生成多层索引的DataFrame对象 python 多重索引_3c_03


python生成多层索引的DataFrame对象 python 多重索引_数据_04


python生成多层索引的DataFrame对象 python 多重索引_数据_05


python生成多层索引的DataFrame对象 python 多重索引_数据_06


我们查找索引位置是(0,0)的数据正好查找到29,说明是正确的

接下来我们用loc引用试试

python生成多层索引的DataFrame对象 python 多重索引_3c_07


python生成多层索引的DataFrame对象 python 多重索引_数据_08


我们的确得到了一个数据框,这容易理解,但是接下来如果我们想查找3c数码下的mean

python生成多层索引的DataFrame对象 python 多重索引_3c_09


python生成多层索引的DataFrame对象 python 多重索引_数据_10


我们们发现会报错,也就是说,我们利用loc不能直接索引第二层、第三层的数据

那应该怎么办呢,毕竟这是一个多维的数据,一个办法是多次loc,如我们要找以下数据,3c数码,年龄,内江市,mean,女的数据

就能得到正确的结果,注意,从外到内索引,即可。当然在多维数据索引之前,我们需要清楚各个维度的变量有什么。

python生成多层索引的DataFrame对象 python 多重索引_3c_11


python生成多层索引的DataFrame对象 python 多重索引_3c_12