zoukankan      html  css  js  c++  java
  • python .loc vs .iloc区别

      1.loc意义:通过行标签索引行数据

           例: loc[n]表示索引的是第n行(index 是整数)

                  loc[‘d’]表示索引的是第’d’行(index 是字符)

       2. .iloc   :通过行号获取行数据,不能是字符

       3.  ix——结合前两种的混合索引

    三者区别: 

    ix / loc 可以通过行号和行标签进行索引,比如 df.loc['a'] , df.loc[1], df.ix['a'] , df.ix[1]

    而iloc只能通过行号索引 , df.iloc[0] 是对的, 而df.iloc['a'] 是错误的

    建议:

    当用行号索引的时候, 尽量用 iloc 来进行索引; 而用标签索引的时候用 loc ,  ix 尽量别用。

    例:

         import numpy as np

       import pandas as pd

    df=pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))
    print(df)

         a    b    c
     0  0   2    4
    1   6   8  10
    2 12 14 16
    3 18 20 22
    4 24 26 28
    5 30 32 34
    6 36 38 40
    7 42 44 46
    8 48 50 52
    9 54 56 58


    print df.iloc[0] #输出第0行所有列内容

    a 0
    b 2
    c 4
    Name: 0, dtype: int32

     print df.iloc[0:3] #输出0至3行所有列内容

          a     b    c

    0  0     2    4
    1  6     8  10
    2 12 14 16

    print df.iloc[1,2] #输出第一行第二列

       10

     print df.iloc[1,‘c’]  #输出第一行第二列,因为用了标签索引,所以会报错

    ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types

    print df.loc[0,'a']

     0

    print df.loc[0:3,['a','b']]

          a   b
    0    0  2
    1   6   8
    2 12 14
    3 18 20

    print df.loc[[1,5],['b','c']]

         b  c
    1  8 10
    5 32 34

    为便于区分,所有屏幕输出结果,全部用斜体

  • 相关阅读:
    第四章
    第三章
    第二章
    实验5-2: 编制程序,输入m、n(m≥n≥0)后,计算下列表达式的值并输出。 要求将计算阶乘的运算编写作函数fact(n),函数返回值的类型为float
    作业
    多人电费
    单人电费
    圆柱体积
    圆面积
    第七章
  • 原文地址:https://www.cnblogs.com/ghllfl/p/8481576.html
Copyright © 2011-2022 走看看