python df.iloc[]和df.loc[]使用

假设df是一个DataFrame型的数据集,而iloc函数和loc函数的作用就是对数据集进行选择(说切片也行)两个函数都属于pandas库。

在对DataFrame进行操作时,会大量的使用这两个方法,从数据集中提取出目标数据。

区别
  • loc [ raw , col ]:第一个参数raw表示行选,行选只能是整数;后面的参数表示列选,列选只能是索引名称,比如姓名、年龄之类的

  • iloc [ raw , col ]:第一个参数raw表示行选,第二个参数表示列选,都必须是整数。

参数使用

: 的使用:假设在loc函数中raw=1:3(同理列选col),则表示选择从第一行到第三行的所有行,也就是[ 1 , 3 ](左闭右闭);而在iloc函数中,表示选择从第一行到第2行的所有行,不包括第三行,也就是 [ 1 , 3) (左闭右开)。如果只传递一个 :,则表示选择全部行(列)。“-1”表示最后一行

举例
# 创建一个DataFrame数据集
df = pd.DataFrame([
    ['green', 'M', 10.1, 'class1'],
    ['red', 'L', 13.5, 'class2'],
    ['blue', 'XL', 15.3, 'class1']],
     index=range(0, 3), columns=list('ABCD'))
     print('现在的数据集是:')
     
print(df)
print('当前数据集为:' + str(df.shape))
cols = df.shape[1]   # shape[0]表行数,shape[1]表示列数
print('列数是:' + str(cols))

输出这个数据集:

       A   B     C       D
0  green   M  10.1  class1
1    red   L  13.5  class2
2   blue  XL  15.3  class1
当前数据集为:(3, 4)
列数是:4
对loc函数使用
print('loc[row,col]通过标签提取数据:')
print('取出行标签为0的那一行:')
print(df.loc[0]) # 只传递一个参数时,默认是行选
Out:
loc[row,col]通过标签提取数据:
取出行标签为0的那一行:
A     green
B         M
C      10.1
D    class1
Name: 0, dtype: object
print('取出列标签为B的那一列:')
print(df.loc[:, 'B'])
Out:
取出列标签为B的那一列:
0     M
1     L
2    XL
Name: B, dtype: object
print('取出列标签为B的第0行和第1行(loc左闭右闭):')
print(df.loc[0:1, 'B'])
Out:
取出列标签为B的第0行和第1行(loc左闭右闭):
0    M
1    L
Name: B, dtype: object
对iloc函数使用
print('iloc[row,col]通过行列坐标来取数据:')
print('取出第0行:')
print(df.iloc[0])
# 也可以用print(df.iloc[0,:])
Out:
iloc[row,col]通过行列坐标来取数据:
取出第0行:
A     green
B         M
C      10.1
D    class1
Name: 0, dtype: object
print('取出第1列(注意:iloc左开右闭):')
print(df.iloc[:, 1:2])
Out:
取出第1列(注意:iloc左开右闭):
    B
0   M
1   L
2  XL
print('取出第1行和第二行的后两列:')
# cols = df.shape[1]   # shape[0]表行数,shape[1]表示列数
print(df.iloc[1:3, cols - 2:cols])
Out:
取出第1行和第二行的后两列:
      C       D
1  13.5  class2
2  15.3  class1
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐