• python pandas 中 loc & iloc 用法区别


    转自:https://blog.csdn.net/qq_21840201/article/details/80725433


    ### 随机生DataFrame 类型数据
    import pandas as pd
    import numpy as np
    frame = pd.DataFrame(np.random.rand(4,4),index=list('abcd'),columns=list('ABCD'))
    frame
      A B C D
    a 0.560094 0.352686 0.954100 0.926277
    b 0.563728 0.335517 0.232902 0.973932
    c 0.482155 0.976618 0.565462 0.445108
    d 0.477146 0.933353 0.291764 0.986668
    1、loc     基于行标签和列标签(x_label、y_label)进行索引

    ### .loc先行后列,中间用逗号(,)分割,例如取 a 和 A 对应的数据
    frame.loc['a','A']
    0.56009394013943303
    ### 取前两行对应数据
    frame.loc['a':'b',:]
      A B C D
    a 0.560094 0.352686 0.954100 0.926277
    b 0.563728 0.335517 0.232902 0.973932
    ### 取前两列对应数据
    frame.loc[:,'A':'B']
      A B
    a 0.560094 0.352686
    b 0.563728 0.335517
    c 0.482155 0.976618
    d 0.477146 0.933353
    ### 取前两行和前两列对应数据
    frame.loc['a':'b','A':'B']
      A B
    a 0.560094 0.352686
    b 0.563728 0.335517
    ### 上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
    frame.loc[['a','d'],['A','D']]
    上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
    frame.loc[['a','d'],['A','D']]
      A D
    a 0.560094 0.926277
    d 0.477146 0.986668
    2、 iloc   基于行索引和列索引(index,columns) 都是从 0 开始

    如果数据的行标签和列标签名字太长或不容易记,则用 iloc 很方便,只需记标签对应的索引即可

    ### .loc先行后列,中间用逗号(,)分割,例如取 a 和 A 对应的数据
    frame.iloc[0,0]
    0.56009394013943303
    ### 取前两行对应数据
    frame.iloc[0:2,:]
      A B C D
    a 0.560094 0.352686 0.954100 0.926277
    b 0.563728 0.335517 0.232902 0.973932
    ### 取前两列对应数据
    frame.iloc[:,0:2]
    A B
    a 0.560094 0.352686
    b 0.563728 0.335517
    c 0.482155 0.976618
    d 0.477146 0.933353
    ### 取前两行和前两列对应数据
    frame.iloc[0:2,0:2]
      A B
    a 0.560094 0.352686
    b 0.563728 0.335517
    ### 上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
    frame.iloc[[0,3],[0,3]]
    上面的例子取的都是连续的行和列,若取第一行和第四行、第一列和第四列对应的数据,则
    frame.iloc[[0,3],[0,3]]
      A D
    a 0.560094 0.926277
    d 0.477146 0.986668
    3、 ix  基于标签或者索引(loc和iloc 的混合)

    ### 取前两行和前两列对应数据
    frame.iloc[0:2,0:2]
      A B
    a 0.560094 0.352686
    b 0.563728 0.335517
    ### 取前两行和前两列对应数据
    frame.ix['a':'b','A':'B']
      A B
    a 0.560094 0.352686
    b 0.563728 0.335517
    官方文档新的python版本已经弃用 ix,建议使用 loc 和 iloc

    .ix is deprecated. Please use
    .loc for label based indexing or

    ---------------------
    作者:求知者_123
    来源:CSDN
    原文:https://blog.csdn.net/qq_21840201/article/details/80725433
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    面向对象与面向过程的区别
    IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题
    ldap bdb_db_open 错误解决办法
    转载:技术普及帖:你刚才在淘宝上买了一件东西
    js错误捕捉
    Linux服务器管理系统wdcp Lanmp
    [译]Pro ASP.NET MVC 3 Framework 3rd Edition (Chapter 20 JQuery) 0.引言
    发一个自己写的账号管理软件
    [译]Pro ASP.NET MVC 3 Framework 3rd Edition (Chapter 20 JQuery) 4.Basic jQuery Theory jQuery理论基础
    资源下载(2011609更新)
  • 原文地址:https://www.cnblogs.com/eternal1025/p/10489320.html
Copyright © 2020-2023  润新知