pandas索引器loc和iloc

DataFrame是pandas两种数据类型之一(另一种是Series),日常使用最多的也是它。DataFrame是一张二维表,使用的时候要知道如何定位元素,loc和iloc是就是用来定位元素的。

loc索引器

loc索引器是一中基于元素的索引器,一般的形式是loc[*,*],第一个参数是行选择,第二个参数是列选择,如果不设置第二个参数,表示查询所有列。第一个参数可以接受4类合法对象,分别是单个元素、元素列表、元素切片以及布尔列表。先看一下示例数据:

df = pd.read_excel('calendar2022.xls',index_col='DAY')
print(df.head(5))

f25ea1d0162ad676db9464dccdba48c2.jpeg

1.单个元素

索引单个元素,如果匹配一行,返回的是Serise,如果匹配多行,返回DataFrame:

print(df.loc[20221003])

a18227f57bf36846729902879bef19c5.jpeg

2.元素列表

print(df.loc[[20221003,20221004]])

7f70fa24e26f24879e0bf0a11b14d40c.jpeg

3.元素切片

print(df.loc[20221001:20221004])

2cc28c900996c18a71fb4604adbcbed5.jpeg

4.布尔列表

比如查询春节是哪一天:print(df.loc[df['SPR']==1])

03222c7ad9f561039f70917962263341.jpeg

iloc素引擎

iloc索引器和loc索引器用法类似,只不过它是针对位置进行索引,第一个参数可以接受4类对象:整数、整数列表、整数切片和布尔列表。

1.整数

第二行数据:print(df.iloc[1])

f0ea19879e5fa968961cd5c73b8788e9.jpeg

2.整数列表

前三行三列:print(df.iloc[[0,1,2],[0,1,2]])

1d25d8c7231d55c2426af35bd87ea7cc.jpeg

3.整数切片

依然是前三行散列:print(df.iloc[0:3,0:3]),结果和上图一致。

4.布尔列表

查询所有月份的最后一天:print(df.iloc[(df['EOM']==1).values]),这个写法有点另类,必须返回布尔列表的值,否则回报错,所以有类似需求时,建议使用loc索引器:print(df.loc[df['EOM']==1])

89048763003253ec6ce87bfea0eba8b5.jpeg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值