Pandas中loc和iloc函数(提取某几列或者行的数据)

2023-10-25 15:59

本文主要是介绍Pandas中loc和iloc函数(提取某几列或者行的数据),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

loc函数:通过行索引(列名、行名) 中的具体值来取行数据(如取"Index"为"A"的行

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

需要知道:

data['A'] 是选取data表中的列名为A的所有数据,这个只对列有效,对行没有用,因为列有列名,而行没有行名

例如此时,data['a'] 就是错的

一、iloc

data.iloc[ A:B ,C:D ]

用法:逗号前面表示的是取哪些行,逗号后面表示取哪些列

例如1:data.iloc[ 0:2 ,1:2 ]  # 取第0-2行和1-2列交叉的所有的数据

例如2:data.iloc[ : ,1:2 ]  # 取所有行和1-2列交叉的所有的数据

例如3:data.iloc[ : , : ]  # 取所有行和所有列的所有的数据

例如4:data.iloc[ : , [1,2,3] ]  # 取所有行和第1,2,3列交叉的所有的数据

 二、loc

想要得到某行的所有值,只需要data.loc['该行的第一个元素']],这里是一个[]

想要得到某列的所有值,通过data.loc[: , ['该列的第一个元素']]

例如1:data.loc[ : ,'A' ]  # 取列名为A的该列的所有数据

例如2:data.iloc[ 'a':'c' ,'A' ]  # 取行号为a、c的列为A的所有数据


 

data.loc[data['A']==0]  # A列中数字为0所在的行数据


1. 利用loc、iloc提取某一行数据

import numpy as np
import pandas as pd
#创建一个Dataframe
data=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD'))In[1]: data
Out[1]: A   B   C   D
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15#取索引为'a'的行
In[2]: data.loc['a']
Out[2]:
A    0
B    1
C    2
D    3#取第一行数据,索引为'a'的行就是第一行,所以结果相同
In[3]: data.iloc[0]
Out[3]:
A    0
B    1
C    2
D    3

2. 利用loc、iloc提取某一列或者几列数据

In[4]:data.loc[:,['A']] #取'A'列所有行,多取几列格式为 data.loc[:,['A','B']]
Out[4]: A
a   0
b   4
c   8
d  12In[5]:data.iloc[:,[0]] #取第0列所有行,多取几列格式为 data.iloc[:,[0,1]],取第0列和第1列的所有行
Out[5]: A
a   0
b   4
c   8
d  12

4.利用loc、iloc提取所有数据

In[8]:data.loc[:,:] #取A,B,C,D列的所有行
Out[8]: A   B   C   D
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15In[9]:data.iloc[:,:] #取第0,1,2,3列的所有行
Out[9]: A   B   C   D
a   0   1   2   3
b   4   5   6   7
c   8   9  10  11
d  12  13  14  15

5.利用loc函数,根据某个数据来提取数据所在的行

In[10]: data.loc[data['A']==0] #提取data数据(筛选条件: A列中数字为0所在的行数据)
Out[10]: A  B  C  D
a  0  1  2  3In[11]: data.loc[(data['A']==0)&(data['B']==2)] #提取data数据(多个筛选条件)
Out[11]: A  B  C  D
a  0  1  2  3

利用loc函数的时候,当index相同时,会将相同的Index全部提取出来,

优点是:如果index是人名,数据框为所有人的数据,那么我可以将某个人的多条数据提取出来分析;

缺点是:如果index不具有特定意义,而且重复,那么提取的数据需要进一步处理,可用.reset_index()函数重置index

这里给一个实际场景:

Excel中的某一部分如下所示:

此时我们想取到Excel表格的第2列到倒数第二列所有的数据,那么我使用以下代码:

o_train = pd.read_csv('./dataset/train.csv')
o_test = pd.read_csv('./dataset/test.csv')print(o_train.shape) #(1314, 81)
print(o_test.shape)  #(146, 81)### 'MSSubClass':'SaleCondition'是第二列到倒数第二列
all_features = pd.concat((o_train.loc[:, 'MSSubClass':'SaleCondition'], o_test.loc[:, 'MSSubClass':'SaleCondition'])) # [1460 rows x 79 columns]all_labels   = pd.concat((o_train.loc[:, 'SalePrice'], o_test.loc[:, 'SalePrice'])) # Length: 1460,

 得到如下结果:

参考下文:Pandas中loc和iloc函数用法详解(源码+实例)_我是二师兄的博客-CSDN博客_iloc函数用法

【python】pandas中 loc & iloc用法及区别 - 知乎

这篇关于Pandas中loc和iloc函数(提取某几列或者行的数据)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283625

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C