pandas——层次索引read_csv的index_col,和loc()查询

多个索引修改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    男  法国
'''
发布了70 篇原创文章 · 获赞 1 · 访问量 2429

猜你喜欢

转载自blog.csdn.net/weixin_43794311/article/details/104733855