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

相关文章

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所