Pandas 模块-操纵数据(11)-二元运算--超级add、sub、mul、div、mod、pow等等

                                                                        目录

1. DataFrame.add

1.1 DataFrame.add 语法结构

1.2 DataFrame.add 参数说明

1.3 DataFrame.add 用法示例

1.3.1 正常的使用

1.3.2 需要注意类型相符合

2. DataFrame.sub

2.1 DataFrame.sub 语法结构

2.2 DataFrame.sub 参数说明

2.3 DataFrame.sub 用法示例

3. DataFrame.mul

3.1 DataFrame.mul 语法结构

3.2 DataFrame.mul 参数说明

3.3 DataFrame.mul 用法示例

4. DataFrame.div

4.1 DataFrame.div 语法结构

4.2 DataFrame.div 参数说明

4.3 DataFrame.div 用法示例

5. DataFrame.truediv

6.DataFrame.floordiv 

7. DataFrame.mod

8. DataFrame.pow

9. DataFrame 其余二元运算

        前面说过 Pandas 模块最大的优势是数据计算非常快,尤其是在希望对每个数据进行相同数据操作时候;如果只是会Python的基本操作,免不了一顿 for 循环,但是使用 Pandas 模块,那么代码表现就优雅多了,也快多了。

        今天我们熟悉一下 DataFrame 自带的二元运算,从我们熟悉的加减乘除开始吧。

1. DataFrame.add

1.1 DataFrame.add 语法结构

首先我们要明确,DataFrame.add 等同于 DataFrame + XX 这个动作,但是它在输入数据丢失时候还支持替换 fill_value。它有一个反作用函数 radd。

Signature: df.add(other, axis: 'Axis' = 'columns', level=None, fill_value=None)
Docstring:
Get Addition of dataframe and other, element-wise (binary operator `add`).Equivalent to ``dataframe + other``, but with support to substitute a fill_value
for missing data in one of the inputs. With reverse version, `radd`.Among flexible wrappers (`add`, `sub`, `mul`, `div`, `floordiv`, `mod`, `pow`) to
arithmetic operators: `+`, `-`, `*`, `/`, `//`, `%`, `**`.Parameters
----------
other : scalar, sequence, Series, dict or DataFrameAny single or multiple element data structure, or list-like object.
axis : {0 or 'index', 1 or 'columns'}Whether to compare by the index (0 or 'index') or columns.(1 or 'columns'). For Series input, axis to match Series index on.
level : int or labelBroadcast across a level, matching Index values on thepassed MultiIndex level.
fill_value : float or None, default NoneFill existing missing (NaN) values, and any new element needed forsuccessful DataFrame alignment, with this value before computation.If data in both corresponding DataFrame locations is missingthe result will be missing.Returns
-------
DataFrameResult of the arithmetic operation.See Also
--------
DataFrame.add : Add DataFrames.
DataFrame.sub : Subtract DataFrames.
DataFrame.mul : Multiply DataFrames.
DataFrame.div : Divide DataFrames (float division).
DataFrame.truediv : Divide DataFrames (float division).
DataFrame.floordiv : Divide DataFrames (integer division).
DataFrame.mod : Calculate modulo (remainder after division).
DataFrame.pow : Calculate exponential power.

1.2 DataFrame.add 参数说明

  1. other:标量、序列、series、dict 或 DataFrame;可以是任何单个或多个元素的数据结构,或类似列表的对象。
  2. axis:{ 0 或 “index”,1 或 “columns ”};是否按索引(0 或 “index”)或列(1 或 “columns ”)进行比较。对于“Series ”输入,要与上的 “index” 索引匹配的轴。
  3. level:int 或 label,跨级别广播,匹配上的索引值;通过了 MultiIndex 级别。
  4. fill_value:float 或 None,默认值 None;为了 DataFrame 对齐,在计算之前使用此值,填充现有的缺失(NaN)值。如果两个相应 DataFrame 位置中的数据都丢失,结果将丢失。

1.3 DataFrame.add 用法示例

1.3.1 正常的使用

举例说明,当数据是字符类型时候:

import numpy as np
import pandas as pd
dict_data={"a":list("abcdef"),"b":list("defghi"),"c":list("ghijkl")}
df=pd.DataFrame.from_dict(dict_data)
df
df.add("c")

举例说明,当数据是数字类型时候:

dict_data={"a":[0,1,2,3,4,5,6,7],"b":[10,11,12,13,14,15,16,17],"c":[20,21,22,23,24,25,26,27]}
df=pd.DataFrame.from_dict(dict_data)
df
df.add(100)

1.3.2 需要注意类型相符合

2. DataFrame.sub

2.1 DataFrame.sub 语法结构

DataFrame.sub 语法结构如下:

Signature: df.sub(other, axis: 'Axis' = 'columns', level=None, fill_value=None)
Docstring:
Get Subtraction of dataframe and other, element-wise (binary operator `sub`).Equivalent to ``dataframe - other``, but with support to substitute a fill_value
for missing data in one of the inputs. With reverse version, `rsub`.Among flexible wrappers (`add`, `sub`, `mul`, `div`, `floordiv`, `mod`, `pow`) to
arithmetic operators: `+`, `-`, `*`, `/`, `//`, `%`, `**`.Parameters
----------
other : scalar, sequence, Series, dict or DataFrameAny single or multiple element data structure, or list-like object.
axis : {0 or 'index', 1 or 'columns'}Whether to compare by the index (0 or 'index') or columns.(1 or 'columns'). For Series input, axis to match Series index on.
level : int or labelBroadcast across a level, matching Index values on thepassed MultiIndex level.
fill_value : float or None, default NoneFill existing missing (NaN) values, and any new element needed forsuccessful DataFrame alignment, with this value before computation.If data in both corresponding DataFrame locations is missingthe result will be missing.Returns
-------
DataFrameResult of the arithmetic operation.See Also
--------
DataFrame.add : Add DataFrames.
DataFrame.sub : Subtract DataFrames.
DataFrame.mul : Multiply DataFrames.
DataFrame.div : Divide DataFrames (float division).
DataFrame.truediv : Divide DataFrames (float division).
DataFrame.floordiv : Divide DataFrames (integer division).
DataFrame.mod : Calculate modulo (remainder after division).
DataFrame.pow : Calculate exponential power.Notes
-----
Mismatched indices will be unioned together.Examples
--------
>>> df = pd.DataFrame({'angles': [0, 3, 4],
...                    'degrees': [360, 180, 360]},
...                   index=['circle', 'triangle', 'rectangle'])
>>> dfangles  degrees
circle          0      360
triangle        3      180
rectangle       4      360Add a scalar with operator version which return the same
results.
Signature: df.sub(other, axis: 'Axis' = 'columns', level=None, fill_value=None)
Docstring:
Get Subtraction of dataframe and other, element-wise (binary operator `sub`).Equivalent to ``dataframe - other``, but with support to substitute a fill_value
for missing data in one of the inputs. With reverse version, `rsub`.Among flexible wrappers (`add`, `sub`, `mul`, `div`, `floordiv`, `mod`, `pow`) to
arithmetic operators: `+`, `-`, `*`, `/`, `//`, `%`, `**`.Parameters
----------
other : scalar, sequence, Series, dict or DataFrameAny single or multiple element data structure, or list-like object.
axis : {0 or 'index', 1 or 'columns'}Whether to compare by the index (0 or 'index') or columns.(1 or 'columns'). For Series input, axis to match Series index on.
level : int or labelBroadcast across a level, matching Index values on thepassed MultiIndex level.
fill_value : float or None, default NoneFill existing missing (NaN) values, and any new element needed forsuccessful DataFrame alignment, with this value before computation.If data in both corresponding DataFrame locations is missingthe result will be missing.Returns
-------
DataFrameResult of the arithmetic operation.

2.2 DataFrame.sub 参数说明

        请参考 1.2

2.3 DataFrame.sub 用法示例

dict_data={"a":[0,1,2,3,4,5,6,7],"b":[10,11,12,13,14,15,16,17],"c":[20,21,22,23,24,25,26,27]}
df=pd.DataFrame.from_dict(dict_data)
df
df.sub(10)

 

3. DataFrame.mul

3.1 DataFrame.mul 语法结构

Signature: df.mul(other, axis: 'Axis' = 'columns', level=None, fill_value=None)
Docstring:
Get Multiplication of dataframe and other, element-wise (binary operator `mul`).Equivalent to ``dataframe * other``, but with support to substitute a fill_value
for missing data in one of the inputs. With reverse version, `rmul`.Among flexible wrappers (`add`, `sub`, `mul`, `div`, `floordiv`, `mod`, `pow`) to
arithmetic operators: `+`, `-`, `*`, `/`, `//`, `%`, `**`.Parameters
----------
other : scalar, sequence, Series, dict or DataFrameAny single or multiple element data structure, or list-like object.
axis : {0 or 'index', 1 or 'columns'}Whether to compare by the index (0 or 'index') or columns.(1 or 'columns'). For Series input, axis to match Series index on.
level : int or labelBroadcast across a level, matching Index values on thepassed MultiIndex level.
fill_value : float or None, default NoneFill existing missing (NaN) values, and any new element needed forsuccessful DataFrame alignment, with this value before computation.If data in both corresponding DataFrame locations is missingthe result will be missing.Returns
-------
DataFrameResult of the arithmetic operation.

3.2 DataFrame.mul 参数说明

        请参考 1.2

3.3 DataFrame.mul 用法示例

4. DataFrame.div

4.1 DataFrame.div 语法结构

Signature: df.div(other, axis: 'Axis' = 'columns', level=None, fill_value=None)
Docstring:
Get Floating division of dataframe and other, element-wise (binary operator `truediv`).Equivalent to ``dataframe / other``, but with support to substitute a fill_value
for missing data in one of the inputs. With reverse version, `rtruediv`.Among flexible wrappers (`add`, `sub`, `mul`, `div`, `floordiv`, `mod`, `pow`) to
arithmetic operators: `+`, `-`, `*`, `/`, `//`, `%`, `**`.Parameters
----------
other : scalar, sequence, Series, dict or DataFrameAny single or multiple element data structure, or list-like object.
axis : {0 or 'index', 1 or 'columns'}Whether to compare by the index (0 or 'index') or columns.(1 or 'columns'). For Series input, axis to match Series index on.
level : int or labelBroadcast across a level, matching Index values on thepassed MultiIndex level.
fill_value : float or None, default NoneFill existing missing (NaN) values, and any new element needed forsuccessful DataFrame alignment, with this value before computation.If data in both corresponding DataFrame locations is missingthe result will be missing.Returns
-------
DataFrameResult of the arithmetic operation.

4.2 DataFrame.div 参数说明

        请参考 1.2

4.3 DataFrame.div 用法示例

5. DataFrame.truediv

        DataFrame.truediv 和 DataFrame.div 都是 Pandas 库中DataFrame对象的除法运算方法。它们都可以用来执行元素级的除法运算。

        DataFrame.div(other, axis=0) 方法用于元素级的除法,它的参数 other 可以是一个数,也可以是另一个 DataFrame,如果是后者,则必须两个 DataFrame 有相同的维度。

        DataFrame.truediv(other, axis=0) 方法与 DataFrame.div(other, axis=0) 方法功能一致,唯一不同的是,当遇到除数为 0 的情况时,DataFrame.truediv 会返回 inf,而 DataFrame.div 会返回错误信息。

6.DataFrame.floordiv 

        DataFrame.floordiv 和 DataFrame.truediv 有一个重要的区别:

        DataFrame.truediv(other, axis="columns", level=None, fill_value=None):这个方法计算的是真正的除法,也就是说,它会返回浮点数结果,即使是整数除以整数也会返回浮点数结果。

        DataFrame.floordiv(other, axis="columns", level=None, fill_value=None):这个方法计算的是向下取整的除法,即结果会向下取整到最接近的整数。注意,这里的结果仍然是整数。

        当遇到除数为 0 的情况时,DataFrame.truediv 和 DataFrame.truediv 一样会返回 inf,而 DataFrame.div 会返回错误信息。

7. DataFrame.mod

       DataFrame.mod 是取模的动作,类似与  DataFrame % other 

8. DataFrame.pow

      DataFrame.pow 指数幂,DataFrame.pow(2) 等同于 DataFrame * DataFrame。

9. DataFrame 其余二元运算

        下面很多二元运算,提到的右侧算法,是和左侧算法相对应的。

        如 DataFrame.sub(other[, axis,fill_value]) ,DataFrame.rsub(other[, axis,fill_value]),前者是左侧算法,后者是右侧算法。

        例如两个 DataFrame 数据 df1,df2。

         df1.sub(df2)=df1-df2;

        df1.rsub(df2)=df2-df1

        不知道大家明白了吗?

  1. DataFrame.radd(other[, axis,fill_value]) #右侧加法,元素指向

  2. DataFrame.rsub(other[, axis,fill_value]) #右侧减法,元素指向

  3. DataFrame.rmul(other[, axis,fill_value]) #右侧乘法,元素指向

  4. DataFrame.rdiv(other[, axis,fill_value]) #右侧小数除法,元素指向

  5. DataFrame.rtruediv(other[, axis, …]) #右侧真除法,元素指向

  6. DataFrame.rfloordiv(other[, axis, …]) #右侧向下取整除法,元素指向

  7. DataFrame.rmod(other[, axis,fill_value]) #右侧模运算,元素指向

  8. DataFrame.rpow(other[, axis,fill_value]) #右侧幂运算,元素指向

'''

要是大家觉得写得还行,麻烦点个赞或者收藏吧,想给博客涨涨人气,非常感谢!

'''

 

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

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

相关文章

传媒论坛编辑部传媒论坛杂志社传媒论坛杂志2024年第7期目录

专题│场景传播研究 场景传播:一场遮盖自我与寻找自我的博弈 胡沈明; 3 基于CiteSpace的中国场景传播研究热点分析 管倩;粟银慧; 4-610《传媒论坛》投稿:cnqikantg126.com 数字世界的美与危:场景传播的失范与应对之举 王依晗;章洁…

分布式-知识体系

分布式系统 本质就是一堆机器的协同,要做的就是用各种手段来让机器的运行达到预期 分布式业务场景 分布式四纵四横说 基于 MSA(微服务架构)的分布式知识体系 相关概念 – 【摘自网络原文】 节点与网络 节点 传统的节点也就是一台单体的物…

MySQL数据类型:字符串类型详解

MySQL数据类型:字符串类型详解 在MySQL数据库中,字符串数据类型用于存储各种文本信息。这些数据类型主要包括CHAR、VARCHAR、TEXT和BLOB等。 CHAR与VARCHAR CHAR CHAR类型用于存储固定长度的字符串。它的长度在创建表时就已确定,长度范围…

QJ71C24N-R2 三菱Q系列串行通信模块

三菱Q系列串行通信模块是通过串行通信用的RS-232、RS-422/485线路将对方设备与Q系列可编程控制器CPU相连接,以实现如下所示的数据通信的模块。通过使用调制解调器/终端适配器,可以利用公共线路(模拟/数字)实现与远程设备间的数据通信。 QJ71C24N-R2参数说明:串行RS-…

为什么36KbRAM会配置为32K×1,少的那4Kb去哪了?

首先我们需要了解BRAM的相关知识,可以参考下面两篇文章: Xinlinx FPGA内的存储器BRAM全解-CSDN博客 为何有时简单双口RAM是真双口RAM资源的一半-CSDN博客 本问题的背景是: 每个36Kb块RAM也可以配置成深度宽度为64K 1(当与相邻的36KB块RA…

淘宝新店没有流量和访客怎么办

淘宝新店没有流量和访客时,可以采取以下措施来提升店铺的流量和吸引更多的访客: 3an推客是给商家提供的营销工具,3an推客CPS推广模式由商家自主设置佣金比例,以及设置商品优惠券,激励推广者去帮助商家推广商品链接&…

SVG 绘制微信订阅号icon

效果 代码 <!DOCTYPE html> <html> <body><svg xmlns"http://www.w3.org/2000/svg" version"1.1" width"600" height"600"><rect x"0" y"0" rx"0" ry"0" width&…

JavaEE 初阶篇-深入了解 UDP 通信与 TCP 通信(综合案例:实现 TCP 通信群聊)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 UDP 通信 1.1 DatagramSocket 类 1.2 DatagramPacket 类 1.3 实现 UDP 通信&#xff08;一发一收&#xff09; 1.3.1 客户端的开发 1.3.2 服务端的开发 1.4 实现 …

Arm功耗管理精讲与实战

安全之安全(security)博客目录导读 思考 1、为什么要功耗管理&#xff1f;SOC架构中功耗管理示例&#xff1f;功耗管理挑战&#xff1f; 2、从单核->多核->big.LITTLE->DynamIQ&#xff0c;功耗管理架构演进? 3、什么是电压域&#xff1f;什么是电源域&#xff1f…

C++高级特性:异常概念与处理机制(十四)

1、异常的基本概念 异常&#xff1a;是指在程序运行的过程中发生的一些异常事件&#xff08;如&#xff1a;除数为0&#xff0c;数组下标越界&#xff0c;栈溢出&#xff0c;访问非法内存等&#xff09; C的异常机制相比C语言的异常处理&#xff1a; 函数的返回值可以忽略&…

《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-01-软件架构演化概述

文章目录 1. 演化的重要性2. 架构演化示例 教材中&#xff0c;本节名为&#xff1a;“软件架构演化和定义的关系” 1. 演化的重要性 演化目的&#xff1a;维持软件架构自身的有用性 为什么说&#xff0c;软件架构是演化来的&#xff0c;而不是设计来的&#xff1f; 软件架构的…

【LAMMPS学习】八、基础知识(4.3)TIP3P水模型

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

Python 基础 (Pandas):Pandas 入门

1. 官方文档 API reference — pandas 2.2.2 documentation 2. 准备知识&#xff1a;Pandas 数据结构 Series & DataFrame 2.1 Series 2.1.1 创建 Series 类型数据 一个 Series 对象包含两部分&#xff1a;值序列、标识符序列。可通过 .values (返回 NumPy ndarry 类型…

Fisher 准则分类

目录 一、什么是Fisher 准则 二、具体实例 三、代码实现 四、结果 一、什么是Fisher 准则 Fisher准则&#xff0c;即Fisher判别准则&#xff08;Fisher Discriminant Criterion&#xff09;&#xff0c;是统计学和机器学习中常用的一种分类方法&#xff0c;由统计学家罗纳…

C语言指针进阶:各类型指针变量详解

目录 1. 字符指针变量2. 数组指针变量2.1 什么是数组指针变量2.2 数组指针变量的初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 代码分析4.3.1 typedef 关键字 5. 函数指针数组6. 转移表 正文开始。 1. 字符指针变量 我们可以…

【WP】猿人学12_入门级js

https://match.yuanrenxue.cn/match/12 Fiddler分析发现&#xff0c;所有请求只是 page已经 m不一样 这个m看起来就很像 base64&#xff0c;解码发现确实如此 下面直接构建Python代码&#xff1a; import base64import requestsdef base64_encode_string(input_string):try:#…

搞嵌入式到底属于程序员吗?

搞嵌入式到底属不属于程序员呢&#xff1f;毫无疑问&#xff0c;当然算啊&#xff01;而且我十分赞同另一位朋友所说的&#xff1a;嵌入式程序员是难得的全栈型程序员。尽管嵌入式领域方向众多且繁杂&#xff0c;但他们同样也是会写代码的程序员。 嵌入式行业主要分为硬件和软…

LeetCode-219. 存在重复元素 II

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&…

【写一个简单的service and client(C++)例子——services】

文章目录 1、概要2、引言3、服务开始的地方及步骤3.1 创建工作空间3.2 创建功能包3.3 更新package.xml3.4 编写service 节点3.4.1 添加可执行文件3.4.2 添加 install&#xff08;TARGETS…&#xff09; 部分 3.5 编写client 节点3.5.1 添加可执行文件 3.6 编译运行3.7 运行结果…

高端制造企业生产设备文件管理,怎样保证好用不丢失文件?

高端制造业在市场经济中占据重要角色&#xff0c;在高端制造业企业内部&#xff0c;生产设备又是最关键的一环环&#xff0c;它们不仅负责完成生产任务&#xff0c;同时也会产生大量的文件。这些数据反映了设备的运行状态、生产效率、能源消耗以及产品质量等多个方面&#xff0…