我们上篇文章简单的介绍了如何获取行和列的数据,今天我们一起来看看两个如何结合起来用。
我们依然使用之前的数据。
我们先看看如何通过切片的方法获取指定列的所有行的数据
info = df.loc[:, ["2021年", "2017年"]]
我们注意到,行的位置我们使用类似python中的切片语法。那么-1
是不是也起作用呢?我们试试看如何将最后一列也包含进来。
info = df.iloc[:, [1, 4, -1]]
可以看到也获取到了,但是值得注意的是,如果我们使用了-1
,那么就不能用loc
而是要用iloc
。
大家还记得它们的区别吗?可以看看上一篇文章的内容。
同样我们可以利用切片方法获取类似前4列这样的数据
df.iloc[:, :4]
由于我们没有指定行名称,所有指标这一列也计算在内了。
接下来我们再看看获取指定行指定列的数据
df.loc[2, "2022年"]
是不是很简单,大家要注意的是,这里的2并不算是所以哦,而是行名称,只不过是用了padnas自动帮我创建的行名称。
如果要使用索引的方式,要使用下面这段代码
df.iloc[2, 2]
是不是很简单,接下来我们再看看如何获取多行多列。为了更好的的演示,咱们这次指定索引列
df = pd.read_excel("../data/年度数据.xls", skiprows=skip_rows, index_col=0)
然后,通过下面这段代码获取多行多列
df.loc[["市辖区数(个)", "镇数(个)"], ["2021年", "2018年"]]
可以看到,我们的行名用了一个列表,列名也用了一个列表。通常是建议这样获取的,因为从代码的可读性上更容易知道我们获取的是哪一行哪一列。当然我们也可以通过索引和切片的方式获取,只是可读性上没有这么好。
df.iloc[[2,5], :4]
如果不看结果,只从代码上看是很难知道我们获取的是哪几列的数据。
今天的内容就是这些,下篇内容会和大家介绍一些和我们这两篇内容相关的一些小技巧或者说小练习敬请期待。
我是Tango,一个热爱分享技术的程序猿我们下期见。
我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。