pandas算术运算、逻辑运算、统计运算describe()函数、统计函数、累计统计函数及自定义函数运算

news2025/7/18 7:56:41

一、pandas算术运算

直接对数据进行加、减、乘、除等运算,可使用函数add()、sub()、mul()、div()或+、-、×、÷

代码如下

数据生成
import pandas as pd
import numpy as np

# 数据生成代码
num = np.random.randint(50, 100, (3, 5))

# 传入标签索引
column = ['第一列', '第二列', '第三列', '第四列', '第五列']   # 列标签索引
# ind = ['第一行', '第二行', '第三行']    # 行标签索引
ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data2 = pd.DataFrame(num, columns=column, index=ind)
data2
---------------------------------------------------
data2['第二列'].add(10)   # 第二列的值加10

data2['第二列'].sub(10)   # 第二列的值减10

data2['第二列'] - 20     # 第二列的值减20

data2['第二列'] / 2   # 第二列的值除2

 二、pandas逻辑运算

2.1 运算符合

使用>、<、=、&、|、~等运算符对数据进行筛选

使用示范代码如下

# 数据生成
import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
# 传入标签索引
column = ['语文', '数学', '英语', '物理', '政治']   # 列标签索引
# ind = ['name1', 'name2', 'name3']    # 行标签索引
ind = ['name' + str(i) for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data3 = pd.DataFrame(num, columns=column, index=ind)
data3
-------------------------------------------
data3['数学'] >= 90  # 逻辑判断

data3[data3['数学'] >= 90]  # 使用判断结果作为筛选依据

data3[(data3['数学'] >= 90) | (data3['语文'] >= 90)]   # 多个逻辑判断,每个逻辑要使用括号括起来

操作如下

2.2 运算函数

  • query(expr):根据要评估的条件进行过滤查询
    • expr:查询字符串
  • isin(values):对指定values值进行逻辑判断

具体使用代码如下 

data3.query('数学 >= 90 | 语文>= 90')   # 多个逻辑判断,条件要加上引号

data3.query('~(语文 >= 90)')   # ~为非,即取反,条件要加上引号

data3[data3['数学'].isin([60, 92, 99])]  # 判断是否在指定值中并筛选

操作演示如下 

三、统计运算

3.1 describe()函数

  • describe():综合分析,能够直接得出很多统计结果,用来返回series和DataFrame两个核心数据结构的统计变量,如countmeanstdminmax 等,含义如下
    • count:统计元素个数,此列共有多少有效值
    • mean:均值
    • std:标准差
    • min:最小值
    • 25%、50%、75%:返回数组的三个不同百分位置的数值,即统计学中的四分位数,其中50%对应的是中位数,分别为四分之一分位数、二分之一分位数、四分之三分位数
    • max:最大值

3.2  统计函数

对单个函数进行统计的时候,坐标轴按默认列,即axis=0统计,如要对行统计,需要指定axis=1,如sum(1)

函数方法含义功能
count()非空元素个数
sum()值的总和
mean()平均值
median()中位数
min()最小值
max()最大值
mode()模式,每一列/行按从小到大显示
abs()绝对值
prod()价值的乘积,每一列/行的每个数相乘
std()标准差
var()均方差
idxmax()计算具有最大值的索引标签
idxmin()计算具有最小值的索引标签

代码如下

import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
# 传入标签索引
column = ['语文', '数学', '英语', '物理', '政治']   # 列标签索引
# ind = ['name1', 'name2', 'name3']    # 行标签索引
ind = ['name' + str(i) for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data3 = pd.DataFrame(num, columns=column, index=ind)
data3

data3.count()  # 每一列的元素个数
data3.sum()
data3.mean()   # 每一列的均值
data3.median()   # 每一列的中位数
data3.min()   # 每一列的最小值
data3.max()   # 每一列的最大值
data3.mode()   # 每一列按从小到大显示
data3.abs()   # 绝对值
data3.prod()   # 每一列中的数相乘
data3.std()   # 标准差
data3.var()   # 均方差,标准差的平方
data3.idxmin()   # 计算具有最小值的索引标签
data3.idxmax()  # 计算具有最大值的索引标签

data3.sum(1)  # 计算每一行的和,不填1默认为0,即统计列
data3.mean(1)  # 计算每一行的均值

操作演示如下

3.3 累计统计函数

函数作用
cumsum()计算前1/2/3/…/n个数的和
cummax()计算前1/2/3/…/n个数的最大值
cummin()计算前1/2/3/…/n个数的最小值
cumprod()计算前1/2/3/…/n个数的积

代码如下

import pandas as pd
import numpy as np
# 数据生成代码
num = np.random.randint(50, 100, (3, 5))
# 传入标签索引
column = ['语文', '数学', '英语', '物理', '政治']   # 列标签索引
# ind = ['name1', 'name2', 'name3']    # 行标签索引
ind = ['name' + str(i) for i in range(num.shape[0])]   # 行标签索引,num.shape[0]即获取num数组的行号,此处为3
data4 = pd.DataFrame(num, columns=column, index=ind)
data4
-----------------------------------------------
data4['数学'].cumsum()  # 计算指定列中前n个数的和
data4.cumsum()   # 计算前1/2/3/…/n个数的和
data4.cummax()   # 计算前1/2/3/…/n个数的最大值
data4.cummin()   # 计算前1/2/3/…/n个数的最小值
data4.cumprod()   #计算前1/2/3/…/n个数的积
84*90*84

演示操作如下

 3.4 自定义运算

  • apply(func, axis=0):自动根据func遍历每一个数据,然后返回一个数据结构为Series的结果
    • func:自定义函数
    • axis:取0默认是列,axis=1为行

代码及操作如下

data4.apply(lambda i : i.max() - i.min())  # 求每一列中最大值与最小值的差

学习导航:http://xqnav.top/

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

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

相关文章

[hadoop全分布部署]安装Hadoop、配置Hadoop 配置文件①

&#x1f468;‍&#x1f393;&#x1f468;‍&#x1f393;博主&#xff1a;发量不足 个人简介&#xff1a;耐心&#xff0c;自信来源于你强大的思想和知识基础&#xff01;&#xff01; &#x1f4d1;&#x1f4d1;本期更新内容&#xff1a;安装Hadoop、配置Hadoop 配置文件…

基于SSM的高校课程评价系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

一文带你深入理解【Java基础】· 注解

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

多线程编程【条件变量】

条件变量&#x1f4d6;1. 为什么需要条件变量&#xff1f;&#x1f4d6;2. 条件变量概念&#x1f4d6;3. 发信号时总是持有锁&#x1f4d6;4. 生产者消费者问题&#x1f4d6;5. 基于阻塞队列的生产者消费者模型&#x1f4d6;1. 为什么需要条件变量&#xff1f; 在很多情况下&a…

Android开发音效增强中铃声播放Ringtone及声音池调度SoundPool的讲解及实战(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、铃声播放 虽然媒体播放器MediaPlayer既可用来播放视频&#xff0c;也可以用来播放音频&#xff0c;但是在具体的使用场合&#xff0c;MediaPlayer存在某些播音方面的不足之处 包括以下几点 1&#xff1a;初始化比较消耗资源 尤其…

软件开发工程师笔试记录--关键路径,浮点数计算,地址变换,中断向量,I/O接口,海明码

时间&#xff1a;2022年11月26日 10&#xff1a;00 -11&#xff1a;00 &#xff08;可提前登录15分钟&#xff09; 公司&#xff1a;XX&#xff08;rongyu&#xff09; 岗位&#xff1a;软件开发工程师&#xff08;我的简历语言是Java&#xff09; 题型&#xff1a;选择题&…

一次应用多次fgc原因的排查及解决

应用多次fgc性能排查&#xff08;一次抢购引起的性能问题&#xff09; 大家好我是魔性的茶叶&#xff0c;今天分享一个项目jvm多次fgc的整个排查流程 上班后不久运维突然通知我们组&#xff0c;有一个应用在短时间内多次fgc&#xff0c;即将处于挂掉的状态。 首先我登录skyw…

客户听不进去,很强势,太难沟通了,怎么办?

案例 最近接手一项目,项目范围蔓延,成本超支,进度延期,问项目经理怎么回事? 项目经理C无奈诉苦到:用户A大领导,是业主B的领导,咱们业主B不敢反驳他,让我直接与用户A对接,说A提的需求,默认答应,我有什么办法啊,只能接了。 分析 经过复盘,导致项目蔓延的主要原因…

【参赛经历总结】第五届“传智杯”全国大学生计算机大赛(初赛B组)

成绩 比赛链接 比赛过程 被虐4h 比赛体验不是很好我开始五分后才在qq上看到题第一题签到题第二题调了1h吧&#xff0c;算法题做的不多&#xff0c;题目没读全&#xff0c;wa了几发&#xff0c;有几发是网络问题&#xff0c;交了显示失败&#xff0c;但还是判wa了第三题知道…

mulesoft What‘s the typeOf(payload) of Database Select

Whats the typeOf payload of Database SelectQuestionOptionExplanationMule ApplicationDebugQuestion Refer to the exhibit. The Database Select operation returns five rows from a database. What is logged by the Logger component? Option A “Array” B “Objec…

第五届传智杯-初赛【B组-题解】

A题 题目背景 在宇宙射线的轰击下&#xff0c;莲子电脑里的一些她自己预定义的函数被损坏了。 对于一名理科生来说&#xff0c;各种软件在学习和研究中是非常重要的。为了尽快恢复她电脑上的软件的正常使用&#xff0c;她需要尽快地重新编写这么一些函数。 你只需输出fun(a,…

数据库错误知识集3(摘)

&#xff08;摘&#xff09; 逻辑独立性是外模式不变&#xff0c;模式改变时&#xff0c;如增加新的关系&#xff0c;新的属性&#xff0c;改变属性的数据类型&#xff0c;由数据库管理员对各个外模式/模式的映像做相应改变&#xff0c;可以使得外模式不变&#xff0c;因为应用…

sdfsdfasfsdfdsfasfdfasfasadsfasdfasf

白包api 图片编辑功能&#xff1a; 1、你变体下 SnapEditMenuManager 的 这个方法 public void initEditMainMenu(final EditUITabMenu editUITabMenu) 换成你需要的配置&#xff0c;需要哪个功能 就拿哪一坨&#xff0c;别拿多了 //相框 MenuBean menuBean new MenuBean…

线程的学习

v# 1. 线程基本概念 1.1进程 进程是指运行中的程序&#xff0c;比如启动了QQ&#xff0c;就相当于启动了一个进程&#xff0c;操作系统会为该进程分配空间&#xff1b;当我们使用迅雷&#xff0c;就相当于又启动了一个进程&#xff0c;操作系统将为迅雷分配新的内存空间&…

坦克大战①

1. java绘图技术 JFrame&#xff1a;画板 Jpanel&#xff1a;画板 Graphics&#xff1a;画笔 初始化画板&#xff0c;定义画框的大小&#xff0c;设置可视化&#xff1b; 1.1 画坦克 初始化我方坦克、敌方坦克 绘图&#xff1a;(1)更改背景颜色&#xff1b;(2)绘制敌方坦克…

【Docker】常用命令

背景 当下&#xff0c;docker技术已成为开发者常用的技术栈。不管是开发过程中需要应对的各种复杂多变的开发环境的搭建&#xff0c;还是生产部署环节需要的自动化运维&#xff0c;都离不开docker&#xff0c;本文简单介绍相关命令的含义&#xff0c;用作平时查询使用。 1. doc…

【计算机毕业设计】38.网上轰趴预订系统

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘要 在网上轰趴发展的整个过程中&#xff0c;网上轰趴预定担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类网上轰趴程序也在不断改进。本课题所设计的网上轰趴预定系统&#xff0c;使用SSM框架…

一文看懂Transformer(详解)

文章目录Transformer前言网络结构图&#xff1a;EncoderInput EmbeddingPositional Encoderself-attentionPadding maskAdd & NormFeed ForwardDecoderinputmasked Multi-Head Attentiontest时的Decoder预测Transformer 前言 Transformer最初是用于nlp领域的翻译任务。 …

大屏图表,ECharts 从“熟练”到入门

&#x1f4d6;阅读本文&#xff0c;你将 了解 配置驱动 的思想理解 Echarts 基本概念了解 graphic 和 动画基本玩法。了解 Echarts 基底组件的封装的思路 一、不是标题党&#xff01;Echarts&#xff0c;简历上人均 “熟练”&#xff1f; 公司最近在招外包&#xff0c;而因为…

基于ASP学生资助管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做ASP程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问题…