本文介绍: loc函数通过索引 “Index” 中的具体值来取行数据(如取”Index“为”A”的行)iloc函数通过行号来取行数据(如取第二行数据)注:loclocation的意思,iloc中的iinteger的意思,仅接受整数作为参数。行根据行标签,也就是索引筛选,列根据列标签列名筛选如果选取的是所有或者所有列,可以用:代替行标签选取时候,两端都包含比如[0:5]指的是0,1,2,3,4,5iloc基于位置索引,简言之,就是第几行第几列,只不过这里行列都是从0开始的。…

1.基本简介

1.1 lociloc基本含义

loc函数通过行索引 “Index” 中的具体值来取行数据(如取”Index“为”A”的行

iloc函数:通过行号来取行数据(如取第二行数据

注:loclocation的意思,iloc中的i是integer的意思,仅接受整数作为参数

1.2 loc与iloc区别

官网解释DataFrame中的loc与iloc

Purely integerlocation based indexing for selection by position. –iloc

Access a group of rows and columns by label(s) or a boolean array. –loc

二者区别(传入参数不同):

loc works on labels in the index.
iloc works on the positions in the index (so it only takes integers).

2.使用方法

2.0 数据准备

# 导包
import numpy as np
import pandas as pd
#创建Dataframe
data=pd.DataFrame(np.arange(25).reshape(5,5),index=list('abcde'),columns=list('ABCDE'))

在这里插入图片描述

2.1 使用loc与iloc提取行数

需求获取索引为’a’的行数

# loc的方式
data.loc['a']

# 输出结果
A    0
B    1
C    2
D    3
E    4
Name: a, dtype: int32

# iloc的方式:索引为a即为第一行数据
data.iloc[0]
# 输出结果:
A    0
B    1
C    2
D    3
E    4
Name: a, dtype: int32
# iloc按照切片方式处理
data.iloc[:1]

在这里插入图片描述

2.2 使用loc与iloc提取列数据

需求:取’A’列所有行,多取几列格式data.loc[:,[‘A’,‘B’]],data.iloc[:,[0,1]]

data.loc[:,['A']]

在这里插入图片描述

# 'A'列的数据即为第0列的数据
data.iloc[:,[0]]

在这里插入图片描述

2.3 使用loc与iloc提取指定行、列的数据

需求: 提取index为’a’,‘b’,列名为’A’,’B’中的数据

# 提取index为'a','b',列名为'A','B'中的数据
data.loc[['a','b'],['A','B']]

在这里插入图片描述

# 提取第0、1行,第0、1列中的数据
data.iloc[[0,1],[0,1]]

在这里插入图片描述

2.4 使用loc与iloc提取所有数据

需求:提取所有数据

data.loc[:,:]

在这里插入图片描述

data.iloc[:,:]

在这里插入图片描述

2.5 使用loc根据某个条件来提取数据所在的行

需求1:提取A列中值为0的所在行数

data.loc[data['A']==0]

在这里插入图片描述

需求2:提取A列中数字为0,且B列中值为1所在行的数据

data.loc[(data['A']==0) & (data['B']==1)]

在这里插入图片描述

# 其他实现方式:
data[data['A']==0] #dataframe用法
data[data['A'].isin([0])] #isin函数
data[(data['A']==0)&(data['B']==2)] #dataframe用法
data[(data['A'].isin([0]))&(data['B'].isin([2]))] #isin函数
 
Out[15]: 
   A  B  C  D  E
a  0  1  2  3  4

3. 总结

对于loc选取行列数据:

  1. 行根据行标签,也就是索引筛选,列根据列标签,列名筛选
  2. 如果选取的是所有或者所有列,可以用:代替
  3. 行标签选取时候,两端都包含比如[0:5]指的是0,1,2,3,4,5

对于iloc选取行列数据:

  1. iloc基于位置索引,简言之,就是第几行第几列,只不过这里行列都是从0开始的。
  2. iloc的0:X中不包括X,只能到X-1.

在这里插入图片描述

参考链接

1.https://blog.csdn.net/W_weiying/article/details/81411257

2.https://zhuanlan.zhihu.com/p/129898162

原文地址:https://blog.csdn.net/weixin_44852067/article/details/122301685

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47084.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注