编程技术分享平台

网站首页 > 技术教程 正文

pandas索引器loc和iloc(pandas索引和切片方法)

xnh888 2024-11-08 14:46:49 技术教程 37 ℃ 0 评论

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

loc索引器

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

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

1.单个元素

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

print(df.loc[20221003])

2.元素列表

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

3.元素切片

print(df.loc[20221001:20221004])

4.布尔列表

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

iloc素引擎

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

1.整数

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

2.整数列表

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

3.整数切片

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

4.布尔列表

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表