pandas——层次索引

天大地大妈咪最大 提交于 2020-03-09 08:11:40

多个索引修改index_clo属性的赋值

下面这一行读取,是将前两列作为行索引,index_col=[0,1]

df=pd.read_excel('my_excel.xlsx',header=0, sheet_name=0,encoding='gbk',index_col=[0,1])
'''
      sex add
名字 age        
王贵 24    男  中国
狗子 35    男  非洲
黑蛋 23    女  南美
小五 5     男  英国
李四 6     男  苏兰
小红 4     女  芬兰
王贵 22    男  巴黎
狗子 22    男  法国
'''

查询数据
1,使用df.loc[A,B]函数查询某一个条件时,将两列中每个索引放入一个元组内作为A的值,df.loc[(索引1,索引2),列索引]

print(df.loc[('王贵',24),:])
'''
sex     男
add    中国
Name: (王贵, 24), dtype: object
'''

2,使用多个loc[ ]分多个索引查询,df.loc[索引1].loc[索引2]

print(df.loc['王贵'].loc[24])
'''
sex     男
add    中国
Name: 24, dtype: object
'''

3,对于每部分索引加中括号和不加有一定区别

print(df.loc[('王贵'),'sex'])
print('?'*20)
print(df.loc[('王贵'),['sex']])
'''
age
24    男
22    男
Name: sex, dtype: object
????????????????????
    sex
age    
24    男
22    男
'''

4,想在一行索引中选择多个值,可以使用列表代替该索引位置

print(df.loc[(['狗子','王贵'],22),['sex','add']])
''''狗子','王贵'都是name里的值,是第一个索引;22是age列的值是二个索引
       sex add
名字 age        
王贵 22    男  巴黎
狗子 22    男  法国
'''
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!