format 命令(format命令参数详解)

zhangyang 2022-05-11 阅读:19
  

  来源:AI学习入门

  作者:小吴哥

一网打尽Pandas中的各种索引 iloc,loc,ix,iat,at,直接索引

一、索引的概述

  很多人在使用熊猫选取数据时,总是迷失在data[],iloc(),loc(),ix(),at(),iat()中。他们好像记得,但是不记得,每次用的时候都需要百度,不知怎么的就解决了问题。下次他们继续百度,记忆点基本上非常多。本文希望能解决这个问题,并通过一个简单的数据框架彻底了解这三个函数之间的区别以及如何使用它们。希望对你有用。

  日常使用中,建议使用loc和iloc进行索引。loc表示位置,iloc中的I表示整数。这两种方法很容易混淆,可以用特殊的方法来加强记忆。

  我可以查看iloc:基于位置,用行号、列号进行索引,,的int,以便iloc只能用整数索引,例如data.iloc[0:2,]

  loc :基于标签,用行名、列名进行索引,数据的索引总是一个整数,所以loc比iloc的应用要广泛得多。loc可以按整数切片,按名称索引(索引、列),或者按切片和名称混合。示例:data.loc [033605:' row1' 3360' row2']

  我们简单地构造一个数据集,它将在下面的案例中使用。

  进口熊猫作为pd

  将numpy作为np导入

  数据=pd。DataFrame(np.arange(25))。整形器(5,5),

  index=['行1 ','行2 ','行3 ','行4 ','行5'],

  columns=['col1 ',' col2 ',' col3 ',' col4 ',' col5'])

  数据

  列1列2列3列4列5

  第1行0 1 2 3 4

  第2行5 6 7 8 9

  第3行10 11 12 13 14

  第4行15 16 17 18 19

  row5 20 21 22 23 24 一网打尽Pandas中的各种索引 iloc,loc,ix,iat,at,直接索引

二、用列名直接索引 (不推荐)

  取一列:数据['col1']获取第一列,并获取一个系列对象。

  取多列:数据[['列1 ','列2']]

  注 意:

  使用data['row1'],data[0],data [3360,0],data[0,3360],data [3360,' col1' 3360' col2']都会给出错误。此类命令只能用于按列名选择一个或多个列。

  数据['列1']

  第1 0行

  第2行5

  第3行10

  第4行15

  第5行20

  名称:列1,数据类型: int32

  数据[['列1 ','列2']]

  列1列2

  第1行0 1

  第2行5 6

  第3行10 11

  第4行15

16row5 20 21#下面的命令直接应用都会报错,但是用loc 和 iloc 就不会报错data['row1']data[0]data[:,0]data[0,:]data[:,'col1':'col2'] #TypeError: '(slice(None, None, None), 0)' is an invalid key

三、用行号直接索引(不推荐)

data[0:2]代表取得第0行和第1行

注 意:

只取一行的话,要用data[0:1],不能用data[0]。data[0:2,]也会报错

data[0:2]      col1  col2  col3  col4  col5row1     0     1     2     3     4row2     5     6     7     8     9

四、iloc按行号、列号来索引(推荐)

1)取一行 :data.iloc[0] 、data.iloc[0,:]

2)取多行 :data.iloc[[0,2]] 、data.iloc[[0,2],:]

3)取连续多行 :data.iloc[0:2] 、data.iloc[0:2,:]

4)取一列 : data.iloc[:,0]

5)取多列 :data.iloc[:,[0,2]]、data.iloc[:,[0,2]]

6)取连续多列 :data.iloc[:,0:2]

注 意:

取行的时候可以不提列,也可以用",:"来指全列

取列的时候必须用":,"来指定全行。

可以使用一个数字来代表一个,可以使用一个列表[a,b]代表多个,也可以使用a:b代表连续多个。

data.iloc[0]col1    0col2    1col3    2col4    3col5    4data.iloc[:,2:4]      col3  col4row1     2     3row2     7     8row3    12    13row4    17    18row5    22    23

五、loc按行名、列名来索引(推荐)

1)取一行:data.loc['row1'] 、data.loc['row1',:]

2)取多行:data.loc[['row1','row2']] 、data.loc[['row1','row2'],:]

3)取连续多行:data.loc['row1':'row2'] 、data.loc['row1':'row2',:]

4)取一列:data.loc[:,'col1']

5)取多列:data.loc[:,['row1','row2']]

6)取连续多列:data.loc[:,'row1':'row2']

注 意:

取行的时候可以不提列,也可以用",:"来指全列。

取列的时候必须用":,"来指定全行。

可以使用一个数字来代表一个,可以使用一个list ['a','b']代表多个,也可以使用'a':'b'代表连续多个。

data.loc[:,'col1':'col3']       col1  col2  col3row1     0     1     2row2     5     6     7row3    10    11    12row4    15    16    17row5    20    21    22#当索引为整数时,可以用整数进行索引data = pd.DataFrame(np.arange(25).reshape(5, 5),                   columns=['col1', 'col2','col3','col4', 'col5'])   col1  col2  col3  col4  col50     0     1     2     3     41     5     6     7     8     92    10    11    12    13    143    15    16    17    18    194    20    21    22    23    24data.loc[0:3,'col1':'col3']    col1  col2  col30     0     1     21     5     6     72    10    11    123    15    16    17

六、使用iat和at(不推荐)

iat 和 at 只能取单个元素,iat 使用行、列索引,at 使用行、列名,但是其功能被 iloc 和 loc 包含,因此不推荐。

data.iat[1,2]7

七、使用ix(不推荐)

ix 相当于 loc 和 iloc 的综合版本,既可以按标签选取,又可以按位置选取,也就是说,ix可以识别你是想按照标签选取,还是按照位置选取。

关于ix,它是先于 iloc 和 loc 产生的,现在基本上用 iloc 和 loc 已经完全能取代 ix ,所以 ix 已经被官方弃用了。就不赘述了。

最后总结:(重点!!!!)

正常情况下,推荐使用 iloc 和 loc。最核心的点记住,取行可以不提列,取列必须提行,可以用一个数字,一个list,或者一个区间来取行列。

一网打尽Pandas中的各种索引 iloc,loc,ix,iat,at,直接索引

  

评论(0)

二维码