多层索引的创建
普通-多个index创建
- 在创建数据的时候加入一个index列表,这个index列表里面是多个索引列表
Series多层索引的创建方法
import pandas as pd s = pd.Series([1,2,3,4,5,6],index=[['张三','张三','李四','李四','王五','王五'], ['期中','期末','期中','期末','期中','期末']]) # print(s) s
张三 期中 1
期末 2
李四 期中 3
期末 4
王五本文来源gaodai$ma#com搞$代*码*网 期中 5
期末 6
dtype: int64
利用 numpy中的随机数
import numpy as np data = np.random.randint(0,100,size=(6,3)) # np.random.randint(0,100,size=(6,3))是使用numpy中的随机模块random中,生成随机整数方法randint, # 里面的参数size是指定生成6行3列的数据,并且每个数字的范围在0到100之间 data
array([[44, 66, 67], [82, 52, 0], [34, 78, 23], [38, 4, 43], [60, 62, 40], [57, 9, 11]])
Dataframe多层索引创建
import pandas as pd import numpy as np data = np.random.randint(0,100,size=(6,3)) df = pd.DataFrame(data,index=[['张三','张三','李四','李四','王五','王五'], ['期中','期末','期中','期末','期中','期末']], columns=['Java','Web','Python']) df
Java | Web | Python | ||
---|---|---|---|---|
张三 | 期中 | 68 | 4 | 90 |
期末 | 33 | 63 | 73 | |
李四 | 期中 | 30 | 13 | 68 |
期末 | 14 | 18 | 48 | |
王五 | 期中 | 34 | 66 | 26 |
期末 | 89 | 10 | 35 |
简化创建-from_product()
import pandas as pd import numpy as np data = np.random.randint(0,100,size=(6,3)) names = ['张三','李四','王五'] exam = ['期中','期末'] index = pd.MultiIndex.from_product([names,exam]) df = pd.DataFrame(data,index=index,columns=['Java','Web','Python']) # print(df) df
Java | Web | Python | ||
---|---|---|---|---|
张三 | 期中 | 51 | 78 | 47 |
期末 | 39 | 53 | 36 | |
李四 | 期中 | 33 | 60 | 83 |
期末 | 90 | 55 | 3 | |
王五 | 期中 | 37 | 45 | 66 |
期末 | 6 | 82 | 71 |