pandas 设置多重索引_pandas基础(2)_多重索引

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[‘期中’]

#如何一级索引有多个,对二级索引会遇到问题,也就是说,无法直接对二级进行索引

必须把

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值