Python库Pandas《Pandas Cookbook》第04章 选取数据子集

这是书籍《Pandas Cookbook》书籍第04章的代码复现,所有代码运行在Jupyter Notebook上,原讲解地址是:
https://www.jianshu.com/p/bd0bc1b5b4b6
我上传代码的github地址是:
https://github.com/Asunqingwen/PandasCookbook.git
github上有该书中用到的data,里面代码会不定期更新(因为工作原因,时间不定),直到本书学习完成!
相比原讲解,会穿插一些自己的理解,水平有限,请各路大神指正。

1.选取Series数据

这段和第01章中Series的获取有点类似,主要是通过index和column_name进行行和列的选取,选取操作用到了iloc和loc函数——前者用整数或整数列表表示,后者用index或index的列表表示
在这里插入图片描述

或者直接用类似Python方法的dict和list切片用法,还可以像list那样反向切片
在这里插入图片描述

2.选取DataFrame的行

个人认为,这部分和第1部分讲的内容是一样的,都是通过iloc和loc函数选取DataFrame的行
在这里插入图片描述

3.同时选取DataFrame的行和列

这部分相对于之前的两部分,也就是在iloc和loc上使用的参数变为了二维的,所以可以同时选取行和列
在这里插入图片描述

4.用整数和标签选取数据

用整数和index结合column_name选取行和列,只是column_name对应的列数来源于get_loc(),index来源于index属性
在这里插入图片描述

5.快速选取标量

当我们指定index和column_name,那么就会获取唯一的值,也可以叫标量。可以用loc和iloc,也可以用获取标量的专有函数at和iat。
这部分最有趣的地方是用到了一个Python中的魔法函数——%timeit,这个函数会自动运行其后的语句多次,以计算平均运行时间,区别于%time,只计算当前运行一次的时间

在这里插入图片描述

6.惰性行切片

网上找了找,只有Python的generator部分有惰性的说法,即next()的时候才会开始计算下一个值,这里的惰性切片,我的理解就是——定义好合适的start,stop,step,一个接一个输出来,不用调用iloc或loc,内部实现可能就是基于generator的。
在这里插入图片描述

但是这样的惰性切片操作不适用于列,对于列只能用iloc和loc
在这里插入图片描述

7.按照字母切片

这部分感觉有点意思,用26个英文字母的顺序来进行切片,所以很明显得先基于索引排序,这样才使得索引列具有顺序意义,那么就能进行切片了,因为不排序,直接切片会产生如下错误:
ValueError: index must be monotonic increasing or decreasing
字面意思就是index必须单调递增或递减

在这里插入图片描述

排序后,index符合要求,就可以切片了,其中涉及到了两个检查字母排序顺序的属性,s_monotonic_increasing()和is_monotonic_decreasing,顾名思义,就是是否单调递增或单调递减
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值