zoukankan      html  css  js  c++  java
  • 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    swoole多进程操作
    LinUX系统ThinkPHP5链接MsSQL数据库的pdo_dblib扩展
    php 访问用友u8数据
    C++/CLI剪辑
    托管代码中调用c++本地代码
    非托管代码中调用托管代码
    Resharper快捷键使用
    Unity3d简便的声音管理方案
    QT离线安装包
    Winform中使用Reactivex代替BeginInvoke/Invoke来更新UI数据
  • 原文地址:https://www.cnblogs.com/eternal1025/p/10489320.html
Copyright © 2011-2022 走看看