大家好,在使用pandas进行数据分析过程中,回想一下你是怎么对一个数据集进行数据切片,是不是百度:<code>pandas如何提取第x行数据</code>,然后根据一堆结果找到一个能用的就完事了,那么你一定会迷失在pandas中的切片函数:<code>.iloc()</code>、<code>.loc()</code>、<code>.ix()</code>中,本文就是为了解决这个问题,通过一个简单的DataFrame彻底搞明白这三个函数到底有什么区别,又该怎么使用。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5iZxYDNkFmNhljN4I2NhhTO2QzN2kDMwATMyADMhJjN58CXxIzLcFDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.gif)
首先我们创建一个DataFrame用于讲解
a
b
c
d
11
aa
9
1
22
bb
8
2
33
cc
7
3
44
dd
6
4
.iloc就是通过<code>行/列号</code>来选取数据,比如我们可以这样来选取<code>第0行</code>数据
也可按照列号选取某列,如选取第二列
当然也可以按照行号选取某行某列,比如选取第0行第2列
当然也可以根据行号选取多行多列,比如选取第0-2行第0-2列
.loc()函数是通过标签选取数据,如果搞不懂什么是标签什么是位置
比如我们选取第1行数据
按标签选取第b行
按标签选取多行
按标签选取某列
按标签选取多列
按标签选取某行某列
ix就是把iloc和loc语法综合了,爱用哪个用哪个,不过在有些版本的pandas中取消了ix函数,我们再看一下df
使用ix可以像iloc通过行号选取
也可以像loc通过标签选取
可以通过行号选取指定位置的数据
可以通过标签选取指定位置的数据
掌握了上面的方法我们就可以按照条件选取数据,比如通过单个条件选取数据
也可以通过多个条件选取数据
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5iZxYDNkFmNhljN4I2NhhTO2QzN2kDMwATMyADMhJjN58CXxIzLcFDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.gif)