Python Pandas 依据标签或者位置选取特定行列 loc和iloc两种方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Pandas 依据标签或者位置选取特定行列 loc和iloc两种方式相关的知识,希望对你有一定的参考价值。

参考技术A Pandas中有两种方式可以进行特定行列的选取,一种是在知道每一列的名称(label)的情况下(df.loc),一种是在只知道列的位置(integer-location)的情况下(df.iloc)。

可以看出,上述的冒号(:)意味着选取所有的行,所以只需在此处进行改动即可选取特定行(前开后闭)

同样在选取特定行的时候,依然存在基于label或者是基于integer-location的选择

选取行采用df.iloc方式,具体如下

除此之外,在采用非标签的方式选择的时候,可以通过输入布尔型变量进行筛选,比如 df.iloc[[True, False, True]] ,或者是 df.iloc[lambda x: x.index % 2 == 0]

完结撒花,反正知道了df.loc和df.iloc的差别之后自由组合就好了~

参考资料: https://pandas.pydata.org/pandas-docs/stable/reference/frame.html#indexing-iteration

pandas.DataFrame 索引方法区别

有三种索引:ix,iloc,loc;

使用方法都是 __.ix[row, columns]

详细的见 pandas 文档。

 

需要注意的差别是:

  1,ix方法 混合索引和位置下标(必须是整数),先考虑是否是在标签索引中,然后考虑是位置下标。如果是整数作为index,ix就按照索引标签选取。

     loc方法按照标签,iloc方法按位置下标。

  2,虽然都支持切片,单个选择也超出范围;

    但是,单个赋值的时候,ix方法可以选择不再索引内的,类似字典的方式新建一个标签行或列。

 

一般情况最好明确使用标签还是位置,即使用loc、iloc。

一方面是意思明确,另一方面是ix选取的时候会复制对象,这会影响效率,如果是赋值给了另外的变量,那么新变量的操作不影响到原来的数据。

  使用loc,iloc选择的结果是一个视图,赋值给别的变量后,变量的改动会互相影响。

而创建新的变量最好显式使用copy方法。

 

以上是关于Python Pandas 依据标签或者位置选取特定行列 loc和iloc两种方式的主要内容,如果未能解决你的问题,请参考以下文章

2pandas数据结构之Series——选取Series子集

Python数据分析pandas入门------十分钟入门pandas

Python数据分析pandas入门------十分钟入门pandas

详解pandas获取Dataframe元素值的几种方法

Python数据分析之pandas学习

pandas.DataFrame 索引方法区别