Python:使用pandas对excel数据筛选选择

1.筛选方式1:直接筛选

#直接筛选
#DataFrame索引使用[],
#直接索引语法:df[]
1.1 直接筛选,选择单列数据:df["列"]

1.2直接筛选,选择多列数据:df[["列1","列2"]](注意:多嵌套列)

1.3直接筛选,选择多行数据:df[2:4]按照位置选取连续的行(切片),前闭后开

2.筛选方式2:条件筛选

#('----------筛选方式2:条件筛选-------------')
#条件筛选
#布尔索引(带条件判断的索引):根据布尔条件选择对应的行
#索引列表中可以使用&、|操作符,但是不能用and、or关键词
#布尔选择的结果还是DataFrame,所以对于结果可以进行切片、索引器等访问

2.1:单列布尔选择,df[(df["列"]==条件)]选取某列满足一定条件的行

2.2:多列布尔选择,df[(df["列1"]==条件&df["列1"]>条件)]选取多列满足一定条件的行

3.筛选方式3:筛选器筛选

#在Pandas两种数据结构中,原始索引(位置信息)和自定义索引(标签信息)并存
#原始索引(位置信息):小标,即行数组0,1,2,3标号;列数组0,1,2,3标号
#自定义索引(标签信息):小标,即行数组0,1,2,3标号,列名(代码,资产,负债,所有者权益)

#loc索引器:只能使用自定义索引,如果数据中没有自定义索引,则使用原始索引。
#根据行索引和列索引进行选取:先行后列,也可以只选取行索引,
#常见形式如下 1.选择单行/多行数据;
#                      2.选择多行多列数据,通过两个列表选取行列组合;
#                       3.loc布尔选择,按照条件选取单列(多列)满足一定条件的行;
#                      4.loc切片(选择连续的多行多列),通过切片选取连续的行列组合,冒号前后留空代表开口;

#iloc索引器:iloc索引器与loc索引器使用几乎相同。
#iloc索引器只能使用原始索引(位置信息),不能使用自定义索引


import pandas as pd#('----------筛选方式1:直接筛选-------------')
#直接筛选
#DataFrame索引使用[],
#直接索引语法:df[]df1=pd.read_excel(r'C:\Benjamin\Benjamin\Benjamin\Python\Study_example\Demo_panada\demo1.4\TEST1.4.xlsx')
print('----------读取表格行,列-------------')
print(df1.shape)
print('----------读取表格行,列结束-------------')print('----------读取表头(默认前5行)-------------')
print(df1.head())
print('----------读取表头结束-------------')print('----------读取表尾(默认后5行)-------------')
print(df1.tail())
print('----------读取表尾结束-------------')
#print(old[''])#1.4.1:直接筛选,选择单列数据:df["列"]
print('----------选择单列数据,比如:资产列-------------')
print(df1["资产"].head())
print('----------选择单列数据结束-------------')#1.4.2:直接筛选,选择多列数据:df[["列1","列2"]](注意:多嵌套列)
print('----------选择多列数据,比如:资产列,负债列-------------')
print(df1[["资产","负债"]].head())
print('----------选择多列数据结束-------------')#1.4.3:直接筛选,选择多行数据:df[2:4]按照位置选取连续的行(切片),前闭后开
print('----------选择多行数据,切片-------------')
print(df1[2:4])
print('----------选择多行数据结束-------------')#('----------筛选方式2:条件筛选-------------')
#条件筛选
#布尔索引(带条件判断的索引):根据布尔条件选择对应的行
#索引列表中可以使用&、|操作符,但是不能用and、or关键词
#布尔选择的结果还是DataFrame,所以对于结果可以进行切片、索引器等访问#1.5.1:单列布尔选择,df[(df["列"]==条件)]选取某列满足一定条件的行
print('----------选择满足条件的列,比如资产>130的行-------------')
print(df1[(df1["资产"]>130)])
print('----------选择多行数据结束-------------')#1.5.2:多列布尔选择,df[(df["列1"]==条件&df["列1"]>条件)]选取多列满足一定条件的行
print('----------选择满足条件的列,比如资产>130的行-------------')
print(df1[(df1["资产"]>130)&(df1["负债"]<48)])
print('----------选择满足条件的行数据结束-------------')#('----------筛选方式3:索引器筛选-------------')
#在Pandas两种数据结构中,原始索引(位置信息)和自定义索引(标签信息)并存
#原始索引(位置信息):小标,即行数组0,1,2,3标号;列数组0,1,2,3标号
#自定义索引(标签信息):小标,即行数组0,1,2,3标号,列名(代码,资产,负债,所有者权益)#loc索引器:只能使用自定义索引,如果数据中没有自定义索引,则使用原始索引。
#根据行索引和列索引进行选取:先行后列,也可以只选取行索引,
#常见形式如下 1.选择单行/多行数据;
#             2.选择多行多列数据,通过两个列表选取行列组合;
#             3.loc布尔选择,按照条件选取单列(多列)满足一定条件的行;
#             4.loc切片(选择连续的多行多列),通过切片选取连续的行列组合,冒号前后留空代表开口;#1.6.1:选择单行/多行数据:df.loc['行']、df.loc[['行1','行2']](注意:多嵌套列)
print('----------loc行名选择-------------')
print(df1.loc[1])
print(df1.loc[[1,3]])
print('----------选择多行数据结束-------------')#1.6.2:选择多行/多列数据:df.loc[['行1','行2'],['列1','列2']](注意:多嵌套列)
print('----------loc行列选择-------------')
print(df1.loc[[1,2],["资产","负债"]])
print(df1.loc[[6,7],["资产","负债"]])
print('----------选择多行数据结束-------------')#1.6.3:loc切片,(选择多行/多列数据):df.loc['行1':'行2','列1':'列2']
print('----------loc切片行列选择-------------')
print(df1.loc[1:4,:"负债"])
print(df1.loc[6:8,"资产":"负债"])
print('----------loc切片数据结束-------------')#iloc索引器:iloc索引器与loc索引器使用几乎相同。
#iloc索引器只能使用原始索引(位置信息),不能使用自定义索引
print('----------iloc切片行列选择-------------')
print(df1.loc[1:4,:"负债"])
print(df1.iloc[1:4,:3])
print('----------iloc切片数据结束-------------')

输出结果:

----------读取表格行,列-------------
(40, 4)
----------读取表格行,列结束-------------
----------读取表头(默认前5行)-------------
   代码   资产  负债    所有者权益
0   1  100  11  1111234
1   2  101  12  1111235
2   3  102  13  1111236
3   4  103  14  1111237
4   5  104  15  1111238
----------读取表头结束-------------
----------读取表尾(默认后5行)-------------
    代码   资产  负债    所有者权益
35  36  135  46  1111269
36  37  136  47  1111270
37  38  137  48  1111271
38  39  138  49  1111272
39  40  139  50  1111273
----------读取表尾结束-------------
----------选择单列数据,比如:资产列-------------
0    100
1    101
2    102
3    103
4    104
Name: 资产, dtype: int64
----------选择单列数据结束-------------
----------选择多列数据,比如:资产列,负债列-------------
    资产  负债
0  100  11
1  101  12
2  102  13
3  103  14
4  104  15
----------选择多列数据结束-------------
----------选择多行数据,切片-------------
   代码   资产  负债    所有者权益
2   3  102  13  1111236
3   4  103  14  1111237
----------选择多行数据结束-------------
----------选择满足条件的列,比如资产>130的行-------------
    代码   资产  负债    所有者权益
31  32  131  42  1111265
32  33  132  43  1111266
33  34  133  44  1111267
34  35  134  45  1111268
35  36  135  46  1111269
36  37  136  47  1111270
37  38  137  48  1111271
38  39  138  49  1111272
39  40  139  50  1111273
----------选择多行数据结束-------------
----------选择满足条件的列,比如资产>130的行-------------
    代码   资产  负债    所有者权益
31  32  131  42  1111265
32  33  132  43  1111266
33  34  133  44  1111267
34  35  134  45  1111268
35  36  135  46  1111269
36  37  136  47  1111270
----------选择满足条件的行数据结束-------------
----------loc行名选择-------------
代码             2
资产           101
负债            12
所有者权益    1111235
Name: 1, dtype: int64
   代码   资产  负债    所有者权益
1   2  101  12  1111235
3   4  103  14  1111237
----------选择多行数据结束-------------
----------loc行列选择-------------
    资产  负债
1  101  12
2  102  13
    资产  负债
6  106  17
7  107  18
----------选择多行数据结束-------------
----------loc切片行列选择-------------
   代码   资产  负债
1   2  101  12
2   3  102  13
3   4  103  14
4   5  104  15
    资产  负债
6  106  17
7  107  18
8  108  19
----------loc切片数据结束-------------
----------iloc切片行列选择-------------
   代码   资产  负债
1   2  101  12
2   3  102  13
3   4  103  14
4   5  104  15
   代码   资产  负债
1   2  101  12
2   3  102  13
3   4  103  14
----------iloc切片数据结束-------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序:分页

自己的笔记分享&#xff1a;小程序分页&#xff0c;具体如下。 ","marks":[]}]}]},{"type":"block","id":"46HQ-1677675582876","name":"code-line","data":{},"nodes":[{&q…

【uni-app】常用图标、头像汇总

在做小程序的时候&#xff0c;有时候需要各种图标和头像素材&#xff0c;而百度一堆基本都是收费的。所以&#xff0c;整理一些免费好用的图标&#xff0c;头像库&#xff1a; 1、iconfont-阿里巴巴矢量图标库 基本上常用的矢量图标&#xff0c;在这儿都有&#xff0c;而且可…

rt-thread rtc设备驱动开发

基于pico rtc设备驱动开发 I/O设备框架RTC设备功能配置——启用Soft RTC功能配置——启用NTP时间自动同步功能配置——启用硬件RTC RT-Thread 的 RTC &#xff08;实时时钟&#xff09;设备为操作系统的时间系统提供了基础服务。应用层对于 RTC 设备一般不存在直接调用的 API &…

基于ZYNQ阵列涡流检测系统硬件设计(一)

为实现阵列涡流检测系统总体功能&#xff0c;需研制一套多通道信号采集硬件系统&#xff0c;以搭配 软件编程实现分时激励和分时采集。基于以上要求&#xff0c;本章介绍了阵列涡流检测系统的硬 件模块设计。 3.1 阵列涡流检测系统总体设计 阵列涡流检测系统需要利用 DA …

分布式软件架构——传输链路

传输链路 链路指无源的点到点的物理连接。链路是计算机网络中的一个重要概念&#xff0c;它指的是连接两个网络设备的物理或逻辑路径。简单来说&#xff0c;链路就是电信号或数据在网络中传输的路径。在计算机网络中&#xff0c;链路可以分为物理链路和逻辑链路两种。物理链路…

【UI自动化测试】appium+python+unittest+HTMLRunner

进阶Python接口自动化测试必备教程&#xff08;2023全网最详细&#xff09; 简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自…

举例说明基于线性回归的单层神经网络网络(以梯度下降算法来求解权重的过程)...

我们将通过一个简单的例子来说明基于线性回归的单层神经网络&#xff0c;以及如何使用梯度下降算法来求解权重。 假设我们有以下数据集&#xff0c;表示学生的学习时间&#xff08;小时&#xff09;与他们的考试分数&#xff1a; 学习时间&#xff08;X&#xff09;&#xff1a…

线程池学习(五)线程工厂、线程池工厂

Executors 定义的Executor, ExecutorService, ScheduledExecutorService, ThreadFactory和Callable类的工厂和实用程序方法&#xff0c;我们称为线程池工厂。ThreadFactory 为定制化创建新线程的对象,我们称为线程工厂 前面几期的学习中&#xff0c;我已经初步会使用线程池了&…

MySQL内置函数

内置函数从实现的功能角度可以分为数值函数、字符串函数、日期和时间函数、流程控制函数、加密与解密函数&#xff0c;获取MySQL信息函数、聚合函数等。 1.数值函数 来源&#xff1a; 版权声明&#xff1a;本文为CSDN博主「清风拂来水波不兴」的原创文章&#xff0c;遵循CC 4…

Ceph简介及部署

Ceph Ceph一、存储基础1、单机存储设备2、Ceph 简介3、Ceph 优势5、Ceph 架构6、Ceph 核心组件7、OSD 存储后端8、Ceph 数据的存储过程9、Ceph 版本发行生命周期10、Ceph 集群部署 二、部署ceph-deploy Ceph 集群前环境配置1、关闭 selinux 与防火墙2、根据规划设置主机名3、配…

数据中心水浸事件,该如何找回安全?

数据中心是现代企业和组织中不可或缺的基础设施&#xff0c;承载着大量的敏感数据和关键业务运作。然而&#xff0c;水浸事件可能成为数据中心的巨大威胁&#xff0c;可能导致设备故障、数据丢失以及业务中断&#xff0c;给组织带来严重的损失和风险。 因此&#xff0c;为了保护…

gd32f103vbt6 串口OTA升级3-linux端的部分

一. 简介 本文主要是对linux端升级单片机程序的功能部分做一些介绍&#xff0c;包括一些软件流程。 二.硬件部分 2.1 rk3399cpugd32f103 2.2 连接方式&#xff1a;串口&#xff08;115200&#xff0c;8N1&#xff09;或者iic&#xff08;本文没有介绍iic&#xff09; 三、其…

WebRTC不同方案对比

1.功能上会有一些出入&#xff0c;尤其是国内的metaRTC版本迭代很快&#xff0c; 2.后续的ffmpeg也在进行支持webrtc特性&#xff0c;obs新的版本好像已经支持了webrtc&#xff0c; 3.对于webrtc部分缺少的信令部分的标准化也有了对应的标准whip和whep协议 所以&#xff0c;如…

一道SQL题

有个搞数仓的朋友不知道从哪儿弄了个题。。。 做了做体验了一下。。。 记录记录。 分析 要保证每天都要做新题 5天必须都做题&#xff0c;不然GG 最后一天必须做新题&#xff0c;如果最后一天做新题了&#xff0c;前面那几天没做新题&#xff0c;做的是老题 最后一天&#…

大厂面试真题:svn面试题总结

1.svn仓库是什么及作用&#xff0c;版本号的概念。 svn是联合开发系统的工具&#xff0c;svn仓库中存放所编写的程序&#xff0c;每个版本都有&#xff0c;大家可以一起更新仓库&#xff0c;但如果你觉得这个版本不如上个版本&#xff0c;你可以直接提取上个版本&#xff0c;每…

SpringBoot 解决跨域问题

在Spring Boot中&#xff0c;解决跨域问题可以通过配置CORS&#xff08;Cross-Origin Resource Sharing&#xff09;来实现。以下是一些解决跨域问题的步骤&#xff1a; 1.添加依赖 在pom.xml文件中添加以下依赖&#xff1a; <dependency> <groupId>org.spr…

QT:问题、解决与原因

在这里记录一些自己遇到的在QT开发上面的小问题和tips 目录 QComboBox 设置qss样式不生效qt按钮设置点击释放效果实现效果 QComboBox 设置qss样式不生效 我设置的样式是&#xff1a; box->setStyleSheet("QComboBox {""border: none;""padding:…

支付宝支付上线准备工作(商家自研接入)

商家自研流程 1.创建应用 登录支付宝开放平台创建 网页/移动应用 说明&#xff1a;生成的应用唯一标识 APPID 可用于调用开放产品接口。 2.配置应用 2.1 应用详情 2.2 产品绑定 2.3 开发设置 在开发 > 开发设置 中配置应用信息。 2.3.1 接口加密方式 按操作步骤进行…

深入 Seaborn:Python 数据可视化进阶

在上一篇介绍 Seaborn 的文章中&#xff0c;我们讨论了一些基础的可视化工具&#xff0c;例如直方图&#xff0c;以及如何使用 Seaborn 控制图形的样式和颜色。在这篇文章中&#xff0c;我们将深入 Seaborn 的中级使用&#xff0c;包括创建复杂的统计图形&#xff0c;如散点图矩…

抖音seo源码部署/开源不加密可二开/抖音seo优化开发方案

一、前言 抖音是目前国内非常流行的短视频平台之一&#xff0c;用户数量庞大&#xff0c;更是吸引了许多企业和个人在上面开设账号&#xff0c;通过发布内容来进行流量变现。但是&#xff0c;在一个账号发布内容的同时&#xff0c;管理员又需要同时关注多个账号&#xff0c;对账…