美文网首页
DataFrame的loc和iloc

DataFrame的loc和iloc

作者: Chaweys | 来源:发表于2020-11-18 11:20 被阅读0次

    loc[row,column]
    row:选择指定行数索引
    如:
    df.loc[:,:]  返回所有数据
    df.loc[:3,:] 返回前4行数据(行索引:0 1 2 3)
    
    column:选择指定的列名
    如:
    df.loc[:3,'name']   返回的是Series类型
    df.loc[:3,['name']] 返回的是DataFrame类型
    
    
    
    iloc[row,column]
    row和column都必须是选择指定的索引数
    如:
    df.iloc[:3,:]  返回前3行数据(行索引:0 1 2)
    df.iloc[:3,:3] 返回前3行前3列数据
    
    
    
    #coding=utf-8
    import pandas as pd
    
    df=pd.read_csv('df.csv',header=0)
    print(df)
    '''
        name  age    sex  score
    0  lemon   20   male    100
    1   jack   22   male     70
    2   json   23  fmale     95
    3   jean   18  fmale     99
    '''
    
    #loc(:,:) 获取所有数据
    print(df.loc[:,:])
    '''
        name  age    sex  score
    0  lemon   20   male    100
    1   jack   22   male     70
    2   json   23  fmale     95
    3   jean   18  fmale     99
    '''
    
    #loc[:2,:] 获取前3行数据
    print(df.loc[:2,:])
    '''
        name  age    sex  score
    0  lemon   20   male    100
    1   jack   22   male     70
    2   json   23  fmale     95
    '''
    
    #loc[:2,'name'] 获取前三行且列索引为name的数据,结果为Series类型
    print(df.loc[:2,'name'])
    print(type(df.loc[:2,'name']))
    '''
    0    lemon
    1     jack
    2     json
    Name: name, dtype: object
    <class 'pandas.core.series.Series'>
    '''
    
    #loc[:2,['name']] 获取前三行且列索引为name的数据,结果为DataFrame类型
    print(df.loc[:2,['name']])
    print(type(df.loc[:2,['name']]))
    '''
        name
    0  lemon
    1   jack
    2   json
    <class 'pandas.core.frame.DataFrame'>
    '''
    
    #loc[:2,['name','age']] 获取前三行且列索引为name即age的数据,结果为DataFrame类型
    print(df.loc[:2,['name','age']])
    '''
        name  age
    0  lemon   20
    1   jack   22
    2   json   23
    
    print(df.loc[:2,'name','age'])
    结果:报错,要返回多列必须将列名组成列表传入
    pandas.core.indexing.IndexingError: Too many indexers
    '''
    
    
    #loc[df.age==22] 获取年龄等于22的行数据
    print(df.loc[df.age==22])
    '''
       name  age   sex  score
    1  jack   22  male     70
    '''
    
    #loc[df.index % 2 ==0] 获取行索引可以整除2的行数据
    print(df.loc[df.index % 2 ==0])
    '''
        name  age    sex  score
    0  lemon   20   male    100
    2   json   23  fmale     95
    '''
    
    
    
    
    
    
    #iloc[:3,:] 返回前3行所有列的数据
    print(df.iloc[:3,:])
    '''
        name  age    sex  score
    0  lemon   20   male    100
    1   jack   22   male     70
    2   json   23  fmale     95
    '''
    
    #iloc[:3,:3] 返回前3行前3列的数据
    print(df.iloc[:3,:3])
    '''
        name  age    sex
    0  lemon   20   male
    1   jack   22   male
    2   json   23  fmale
    '''
    
    #iloc[:3,1:]  返回前3行第二列开始的数据
    print(df.iloc[:3,1:])
    '''
       age    sex  score
    0   20   male    100
    1   22   male     70
    2   23  fmale     95
    '''
    

    相关文章

      网友评论

          本文标题:DataFrame的loc和iloc

          本文链接:https://www.haomeiwen.com/subject/jawnbktx.html