美文网首页
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