相关文章推荐
火爆的草稿本  ·  pandas中DataFrame ...·  3 天前    · 
体贴的葡萄  ·  python ...·  3 天前    · 
爱看球的签字笔  ·  String.CompareToIgnore ...·  2 月前    · 
英俊的红酒  ·  ASP.Net MVC ...·  9 月前    · 
发财的乌龙茶  ·  ERR_CONTENT_LENGTH_MIS ...·  1 年前    · 

10分钟带你学会DataFrame的多层索引及使用

各位朋友们,今天给大家带来的是数据分析的内容。欢迎各位朋友多提宝贵意见哦!

本次分享给大家的是:DataFrame的多层索引及使用。

多层索引是指在行或者列轴上有两个及以上级别的索引,一般表示一个数据的几个分项。比如,下图所示的数据样式:

我们使用的是对美女的颜值投票数据,现在有几位美女分别给他们起了容易记忆的名字,比如:小丽,小芳啊,照片展示一下:

于是拿着这些照片来到办公区,投票啦!投票啦!大家分成了两组进行投票,男生一组、女生一组,投票的内容就是:漂亮和不漂亮。

于是就有了下面的数据部分:

大家发现这个表格数据跟我们常用的不同,那就是列名是有两层的。那这样的数据怎么进行数据分析呢?

import numpy as np
import pandas as pd
beauty = pd.read_excel('beauty.xlsx')
beauty

这是什么情况?列名怎么还有Unnamed:0,Unnamed:1这些呢?是我们读取数据的时候没有设置index_col和header属性。

header设置的是列,如果是多列则使用列表,从左到右为0,1,2,...,index_col则是设置的行,用来指定行索引。

beauty = pd.read_excel('beauty.xlsx',header=[0,1],index_col=0)
beauty

但是要自己创建一个多层索引则有两种方式:分别是隐式和显式的。

1、创建多层索引

方法一:隐式创建,即给DataFrame的index或columns参数传递两个或更多的数组。我们自己构建一个颜值投票的数据。

df1 = pd.DataFrame(np.random.randint(1,30, size=(8, 4)),
                   index= ['小明','小花','小丽','小玲','小军','小新','小美','小芳'],
                   columns=[['男生', '男生', '女生', '女生'],