一,loc函数及iloc函数的使用及区别

Pandas中的loc和iloc两个函数的用法基本相同。iloc与之不同的是它读取数据使用行索引跟列索引来对数据进行定位选取。而loc函数可以通过行名跟列名来对数据进行选取。也就是字符串或者字母。另外对于索引方面,虽然loc方法中也支持对行,列使用Int类型做筛选跟切片。但是这个是与iloc有所不同的是在loc中的0:2是真的代表把索引为0:2的数据选取出来。而iloc中的0:2则选取的内容中不包括2.最多取到1。在这一点上一定要注意其中的区别。

二,loc函数于iloc函数使用对比

1. 对单元格进行取值

注释:loc在取值时0代表行号,因为在没有指定行号的情况下默认是数字0开始分配的。逗号之后代表列名

iloc在取值时逗号前的0跟loc相同也是行索引,而后面取值用的是列的索引值而不能是列名

1 #%%

2

3 importpandas as pd4

5 df = pd.read_excel(R"C:\Users\Administrator\PycharmProjects\python_Basic\Pandas_to_Excel\20200727\student_info.xlsx",6 sheet_name=0)7

8 df.head(3)9 #%%

10 loc01 = df.loc[0,"姓名"]11 loc0112 #%%

13 iloc01 = df.iloc[0,1]14 iloc01

2. 读取行数据

注释:loc取值时候可以通过切片的方式取值0:0代表只去当前这第一列

iloc取值时对比loc唯一不同的是虽然也只是对行索引进行操作。但是切片后面的值位1而不是0因为如果是0的话,默认取值取到的是二维数组的表头也就是列名

#%%

loc02 =df.loc[0:0]

loc02#%%

iloc02 = df.iloc[0:1]

iloc02

3. 读取所选指定范围的数据

需求:读取姓名和总分前4行的数据

注释:这里两者逗号前都是使用了切片的方式指定行数据,而逗号后面则是通过列表指定列名的方式来读取的。当然iloc是通过列索引来读取的。

#%%

loc03 = df.loc[0:3,["姓名","总分"]]

loc03#%%

iloc03= df.iloc[0:4,[1,5]]

iloc03

4. 通过切片来读取数据

注释:在前面的案例中其实已经使用了切片的方式,这里再来巩固一下。这里要注意的是,在逗号前的行索引切片中我使用了步长。也就是第二个分好的2,意思代表每隔1行进行读取。

对比iloc而言loc对于列的读取可以指定列名,这样在可读性方面大大优于Iloc。iloc1:6谁知道1:6是个什么鬼。还要一个个去数下标实在麻烦。所以不同场景不同使用看个人爱好。

iloc03 = df.iloc[0:4,[1,5]]

iloc03#%%

loc04 = df.loc[0:10:2,"姓名":"总分"]

loc04#%%

iloc04 = df.iloc[0:11:2,1:6]

iloc04

5. 通过mask掩码对数据进行选取

需求:选出语文成绩大于80分的所有成员信息

注释:对于mask掩码,返回的是以True,False为值的布尔类型。有多少数据就返回多少个值。这里要强调的是建议使用loc来操作mask掩码也是最方便的。而iloc因为在下面的案例中我个人没能很好的演示成功也觉得麻烦,所以不展示iloc的结果了。感兴趣的可以自己测试。测试过程中少些几个数据。。。

#%%

loc05= df.loc[df["语文"]>80]

loc05#%%

df["语文"]>80

需求2:筛选出班级2中,数学,语文,英语都大于80分的女生。

注释:通过mask掩码的运用。我们可以直接给条件判断,条件成立则把数据筛选出来。这样做的好处在于不用再使用循环取值,可以大大节省IO的消耗。

df = pd.read_excel(R"C:\Users\Administrator\PycharmProjects\python_Basic\Pandas_to_Excel\20200727\student_info.xlsx",

sheet_name=1)

df[(df["语文"]>80) & (df["数学"]>80) & (df["英语"]>80) & (df["性别"]=="女")]

三,综合案例演示

需求:student_info.xlsx这个表格中有5个班级的信息,分别通过5个sheet来保存的。当我们通过pandas来读取Excel的所有内容时必须指定sheet_name=None.但是如果设定为None,那么读取后的数据不在是一个DataFrame而是一个dict字典。那么如何把读取到的dict中的值,作为一个sheet重新保存到另外一个Excel中呢?这就是这个案例的价值。当然如果您的每个sheets中的内容过大,不建议合并成一个sheet。因为这样

在数据打开时直接导致内存消耗而打不开文件。另外转成一个sheet的好处就是当我们读取的时候不在是dict而是DataFrame格式,这样我们在筛选数据的时候可以直接调用DataFrame的方法而不是dict的方法。

#%%

df= pd.read_excel(R"C:\Users\Administrator\PycharmProjects\python_Basic\Pandas_to_Excel\20200727\student_info.xlsx",

sheet_name=None)

keys= list(df.keys()) #获取所有的sheet名的列表

#把所有sheet中的内容合并成一个sheet(数据量大的时候不推荐使用)

data_concat =pd.DataFrame()for i inkeys:

item=df[i]

data_concat=pd.concat([data_concat,item])print(data_concat)

data_concat.to_excel(R"C:\Users\Administrator\PycharmProjects\python_Basic\Pandas_to_Excel\20200727\student_info_concat.xlsx",

index=False)print("Done!")

python loc iloc_【python】python vs Excel ( loc与iloc的使用)相关推荐

  1. python ix loc iloc_关于python:.ix()是否总是比.loc()和.iloc()更好,因为它速度更快并且支持整数和标签访问?...

    我正在学习Python熊猫库. 来自R的背景,索引和选择函数似乎比它们需要的复杂. 我的理解是.loc()仅基于标签,.iloc()仅基于整数. 如果.ix()更快并且支持整数和标签访问,为什么还要使 ...

  2. Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...

  3. python编辑学生分数_python处理excel(04)数据筛选和过滤

    源数据,我们最终要找出年龄在18--30岁之间,分数大于85分的学生,为A类学生.在excel里可以使用筛选功能,先筛选age列,大于等于.小于.这两个条件限制.然后选score后边的小三角,条件为大 ...

  4. 分享一个600块钱的Python私活单,金融Excel数据清洗

    分享一个今年一月份接的一个价值600元的Python数据清洗的金融数据私单,细节确实是接单以来最为复杂的一个案例.废话不多说,给大家分享下整个案例的需求和实现过程. [业务需求] 首先是客户提供给我1 ...

  5. Python数据分析实战-提取DataFrame(Excel)某列(字段)最全操作(附源码和实现效果)

    实现功能: Python数据分析实战-提取DataFrame(Excel)某列(字段)最全操作,代码演示了单列提取和多列提取两种情况,其中单列提取有返回series格式和dataframe两种情况,在 ...

  6. python使用xlsx和pandas处理Excel表格的操作步骤

    python的神器pandas库就可以非常方便地处理excel,csv,矩阵,表格 等数据,下面这篇文章主要给大家介绍了关于python使用xlsx和pandas处理Excel表格的操作步骤,文中通过 ...

  7. 重大改变!Python 或将取代 VBA 成为 Excel 官方脚本语言

    如果微软的 Excel 中支持了人生苦短的 Python,你还会喜欢那个直接且易上手的 VBA 编程吗? 近日,据国外媒体 BLEEPINGCOMPUTER 报道,微软正考虑添加 Python 为官方 ...

  8. python生成表格文件_python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...

  9. python处理大量excel数据-使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

最新文章

  1. Facebook成立AI语言研究联盟,自然语言处理或有新成果
  2. boost::set_difference相关的测试程序
  3. webstorm前端调用后端接口_软件测试面试题:怎么去判断一个bug是前端问题还是后端问题...
  4. 人工智能是一个工程问题,而不是魔术!
  5. .hpp文件_16、OpenCV读写XML和YML文件
  6. 动态的显示当前的时间---setInterval的用法
  7. log4j 和slf4j的比较
  8. idea破解码生成地址
  9. 【本周最新】qlv转mp4格式转换器 工具 软件
  10. 台电平板teclast X16HD碎屏拆机更换日志
  11. 2022届中考倒计时倒计时
  12. Howland电流源
  13. Win10新特性介绍
  14. 英特尔陈伟:AIoT时代的新思维
  15. weex项目实战篇(二)
  16. Unity 3d 粒子系统制作
  17. 【mysql 中文和英文长度】mysql 如何 计算中文和英文的长度
  18. 一次堆破坏的调试经历
  19. 线程池大小设置,CPU的核心数、线程数的关系和区别,同步与堵塞完全是两码事
  20. python打造拳皇97电玩游戏,不信有开源API?先看我玩把八神庵

热门文章

  1. PHP webshell
  2. 聊聊rocketmq的ConsumerIdsChangeListener
  3. MySQL压缩包安装,MySQL8和MySQL5安装,端口3306和3307
  4. js 通用 1000 金额 三位格式化 1,000
  5. C#LeetCode刷题之#501-二叉搜索树中的众数​​​​​​​(Find Mode in Binary Search Tree)
  6. C#LeetCode刷题之#283-移动零(Move Zeroes)
  7. linux运行级别与服务
  8. 2019年JavaScript状态调查中的新增功能
  9. simulink模块使用记录2-EnabledSubsystem/merge
  10. python通用爬虫和聚焦爬虫的区别