• 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

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

  • 相关阅读:
    ROW_NUMBER() OVER (PARTITION BY yy ORDER BY zz) in Linq
    Oracle-sql分页方法
    Lambda
    ISNULL做简单的显示字段逻辑
    Select2使用方法汇总
    mysqldump 定时备份数据(全量)
    ubuntu16.10下安装erlang和RabbitMQ
    XShell连接本地Ubuntu虚拟机
    Haroopad 安装到 Mac OSX
    Swagger 生成API文档
  • 原文地址:https://www.cnblogs.com/xinguichun/p/10992084.html
Copyright © 2020-2023  润新知