Pandas数据分析教程(2)-数据读取之普通索引、loc/iloc索引

在上一期中,我们简单介绍了 SeriesDataFrame两种Pandas中常用的数据结构,那么问题来了,假设我已经有了这两种数据,如何从中提取我想要的部分?

DataFrame类型从某种程度上来说,只不过是比Series多了一个维度,在读取时少填一个参数就可以了,读取方法本质上没啥区别, 因此本文主要记录DataFrame的读取方法

由于Pandas建立在Numpy的基础之上,Pandas的索引与Numpy数组索引的功能类似。但是,回忆一下,Numpy数组的索引必须是整数,而Pandas的索引可以是字符串,这就是最主要的区别。

本文记录两种主要方法: 普通索引法和loc/iloc选择法。现建立一个DataFrame作为本文的例子:

>> table = pd.DataFrame(np.arange(16).reshape(4,4),
                     range(1,5),['A','B','C','D'])
>> table
    A   B   C   D
1   0   1   2   3
2   4   5   6   7
3   8   9  10  11
4  12  13  14  15

普通索引

普通索引主要用于选取 指定列或列序列的数据,另外也可通过上一篇中所讲的 布尔数组或者 切片选取指定行:

table['C']
table[['C','D']]

切片或者 布尔数组可以选取指定行:

table[1:4]
table[table['C']>7]

注意:Series在切片时可有以下形式:obj [‘b’:’d’],截取行b到行d间的行,包括b、d(假定索引从’a’到’d’),也即 左闭右闭

loc/iloc索引

loc和iloc是pandas的两种用于索引的函数,相较于普通索引,这种方法运用的更为广泛。loc方法称为 轴标签索引,iloc方法被称为 整数索引

首先来看 iloc方法

>> table.iloc[[2,3],[3,0,1]]
    D   A   B
3  11   8   9
4  15  12  13

本段代码代表选择第3行(下标为2)和第4行(下标为3)对应第4列、第1列、第2列的部分,注意输出数据的排列顺序是依据给出的索引数据来的。

loc方法与iloc方法的功能是一致的,区别在于,loc方法给出的索引可以不是整数, 该方法默认用户填入的参数为定义的标签,而不是从0 → {\rightarrow}→N-1的下标。譬如在本例中,列标签为[‘A’,’B’,’C’,’D’],那么可以做出如下示例:

>> table.loc[[2,3],['D','A','B']]
    D  A  B
2   7  4  5
3  11  8  9

这一次模块对索引的认定是用户自定义的索引了, 不再是0→N-1的下标了

当然两种方法也是可以进行切片操作的:

table.loc[1:3,:'C']
table.iloc[:,3:]

这些操作都是很好理解的。同时,我们也可以传入布尔数组,进行 条件筛选,来个复杂点的:

>> table.loc[2:4,['A','C','D']][(table.A>4) & (table.C>4)]
    A   C   D
3   8  10  11
4  12  14  15

其实还有一些其他的索引办法,例如 at/iat索引、_get_value方法、ix方法(注意!最新版已弃用)等等,但总的来说, 这些方法的功能loc/iloc索引可以做到,但loc/iloc索引能做到的这些方法做不到,所以一般都用的很少。at/iat索引、_get_value方法都是用于获取一个单元格的值的方法,其中at和iat的区别跟loc和iloc的区别是一样的。

下次?下次不知道会写啥了,写作内容随机 [狗头.jpg]。

转载请标注作者和出处链接

Original: https://blog.csdn.net/weixin_51972995/article/details/122709550
Author: 少喝凉水G
Title: Pandas数据分析教程(2)-数据读取之普通索引、loc/iloc索引

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/751323/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球