第二章 超好用的Pandas索引(上)

0 前言

索引,相当于一本书的目录,告知读者XX内容在一本书的位置。同样地,Pandas索引用于定位特定元素的位置,也用于获取特定位置的元素。
总的来说,可将Pandas索引分为一级索引和多级索引。

1 一级索引

一级索引可归结为四种:

1.1 loc方法、iloc方法、[]操作符

最常用的索引方法可能就是这三类,其中iloc表示位置索引,loc表示标签索引,[]也具有很大的便利性,各有特点。

1.1.1 loc方法

本质上说,loc中能传入的只有布尔列表和索引子集构成的列表。
网上关于loc方法使用的教程很多,而使用loc方法,需要注意的问题有:

# 1. 所有在loc中使用的切片全部包含右端点!所有在loc中使用的切片全部包含右端点!所有在loc中使用的切片全部包含右端点!

# 2. 使用loc方法,即使输入的标签索引是字符也可以进行切片操作(不同于列表,列表只能使用位置索引来切片):
df1 = pd.DataFrame({'A': ['ab', 'bc', 'cd', 'de'], 'B': [1, 2, 3, 4], 'C': [2, 3, 3, 4]})
df1 = df1.set_index('A')
df1.loc['bc':]

# 3. 可在切片操作中使用步长
df1.loc['bc'::-1]

# 4. 函数索引
df1.loc[lambda x:x['C']==3] # loc中使用的函数,传入参数就是前面的df1

1.1.2 iloc方法

和loc方法截然不同,iloc中接收的参数只能为整数或整数列表,不能使用布尔索引。
使用iloc方法,需要注意的地方包括:

# 1. 所有在iloc中使用的切片不包含右端点!所有在iloc中使用的切片不包含右端点!所有在iloc中使用的切片不包含右端点!

# 2. 可在切片操作中使用步长
df1.iloc[:, 3::-2].head() # 从第3列往前取,往前隔一列取一列

# 3. iloc也能使用函数索引

1.1.3 []操作符

一般来说,[]操作符常用于列选择或布尔选择,尽量避免行的选择。如果非得用于行的选择,则不要在行索引为浮点时使用[]操作符,因为在Series中的浮点[]并不是进行位置比较,而是值比较,非常特殊。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值