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