1:多重索引的构造
>>> #下面显示构造pd.MultiIndex
>>> df1=DataFrame(np.random.randint(0,150,size=(6,3)),columns=['java','html5','python'])
>>> import pandas as pd
>>> df1=DataFrame(np.random.randint(0,150,size=(6,3)),columns=['java','html5','python'],index=pd.MultiIndex.from_arrays([['张三','张三','侯少','侯少','a','a'],['M','E','M','E','M','E']]))
>>> df1#因为Python自身的原因,对汉字的识别不是太好,所以汉字被?代替了
java html5 python
???? M 2 13 76
E 141 67 84
M 116 83 8
E 70 118 125
a M 74 0 76
E 111 31 8
>>> #使用元组tuple创建
df2=DataFrame(np.random.randint(0,150,size=(6,3)),columns=['java','html','python'],index=pd.MultiIndex.from_tuples([('a','1'),('a','11'),('b','1'),('b','11'),('c','1'),('c','11')]))
>>> df2
java html python
a 1 32 144 99
11 104 101 16
b 1 93 98 41
11 59 30 45
c 1 91 17 149
11 9 28 59
>>> #使用product
df2=DataFrame(np.random.randint(0,150,size=(6,3)),columns=['java','html','python'],index=pd.MultiIndex.from_product([['zhangsan ','lisi','wangwu'],['mid','end']]))
>>> df2
java html python
zhangsan mid 50 128 54
end 3 4 91
lisi mid 4 93 110
end 116 123 122
wangwu mid 88 25 54
end 48 146 57
>>> #对dataFrame同样可以设置成多重索引
df2=DataFrame(np.random.randint(0,150,size=(3,6)),columns=pd.MultiIndex.from_product([['java','html','python'],['mid','end']]),index=['张三','李四','王五'])
>>> df2
java html python
mid end mid end mid end
???? 33 38 112 70 113 110
???? 29 46 132 91 117 128
???? 73 56 118 82 132 39
>>>
>>> df2['java','mid']#查询某一列
???? 33
???? 29
???? 73
Name: (java, mid), dtype: int32
>>> s['zhangsan':'lisi']#其实就是一个Series
Series([], dtype: int64)
>>> s.iloc[0:3]
a 0 1
1 2
b 0 3
dtype: int64
>>> #切片
>>> df2['张三':'王五']
java html python
mid end mid end mid end
???? 33 38 112 70 113 110
???? 29 46 132 91 117 128
???? 73 56 118 82 132 39
>>>df2.iloc[0:4]#推荐使用
Df2[‘张三’,‘期中’]和df2.loc[‘张三’].loc[‘期中’]
#如何一级索引有多个,对二级索引会遇到问题,也就是说,无法直接对二级进行索引
必须把