Pandas Series的运算原来这么简单

Series的运算主要包括加法、减法、乘法和除法等基本算术运算。这些运算通常是按照索引对应计算的,如果两个Series的索引不同,则结果中对应位置将填充为NaN(空值)。

需要注意的是,在进行Series运算时,需要确保两个Series的索引是可对齐的,否则可能会导致意外的结果。如果两个Series的索引不同,可以使用Pandas的reindex()方法或align()方法来进行索引对齐。

1.Series基本算术运算

  • 适用于 NumPy 的数组运算也适用于 Series

# 导包
import pandas as pds = pd.Series(np.random.randint(10,100,size=10))
s
# 执行结果
0    11
1    40
2    25
3    83
4    18
5    42
6    84
7    43
8    30
9    75
dtype: int32# 加法运算
s + 100
# 执行结果
0    111
1    140
2    125
3    183
4    118
5    142
6    184
7    143
8    130
9    175
dtype: int32# 减法运算
s - 100
# 执行结果
0   -89
1   -60
2   -75
3   -17
4   -82
5   -58
6   -16
7   -57
8   -70
9   -25
dtype: int32# 乘法运算
s * 100
# 执行结果
0    1100
1    4000
2    2500
3    8300
4    1800
5    4200
6    8400
7    4300
8    3000
9    7500
dtype: int32# 除法运算
s / 100
# 执行结果
0    0.11
1    0.40
2    0.25
3    0.83
4    0.18
5    0.42
6    0.84
7    0.43
8    0.30
9    0.75
dtype: float64# 取整运算
s // 100
# 执行结果
0    0
1    0
2    0
3    0
4    0
5    0
6    0
7    0
8    0
9    0
dtype: int32# 次方运算
s ** 2
# 执行结果
0     121
1    1600
2     625
3    6889
4     324
5    1764
6    7056
7    1849
8     900
9    5625
dtype: int32# 求余运算
s % 2
# 执行结果
0    1
1    0
2    1
3    1
4    0
5    0
6    0
7    1
8    0
9    1
dtype: int32

2.Series之间的运算

  • 在运算中自动对齐索引

  • 如果索引不对应,则补 NaN

  • Series 没有广播机制


# 创建两个长度一样的数据
s1 = pd.Series(np.random.randint(10,100,size=3))
s2 = pd.Series(np.random.randint(10,100,size=3))
display(s1,s2)
# 执行结果
0    56
1    74
2    69
dtype: int32
0    27
1    90
2    35
dtype: int32# 对应元素数据相加
s1 + s2
# 执行结果
0     83
1    164
2    104
dtype: int32# 对应元素数据相减
s1 - s2
# 执行结果
0    29
1   -16
2    34
dtype: int32# 创建两个不同长度的数据
s3 = pd.Series(np.random.randint(10,100,size=3))
s4 = pd.Series(np.random.randint(10,100,size=4))
display(s3,s4)
# 执行结果
0    77
1    11
2    76
dtype: int32
0    18
1    74
2    20
3    93
dtype: int32# 根据索引对应的值运算,索引不对应则补 NaN
s3 + s4
# 执行结果
0    95.0
1    85.0
2    96.0
3     NaN
dtype: float64
  • 注意:要想保留所有的 index,则需要使用 .add() 函数


display(s3,s4)
# 执行结果
0    77
1    11
2    76
dtype: int32
0    18
1    74
2    20
3    93
dtype: int32# s3默认填充索引3的值为0
s3.add(s4,fill_value=0)
# 执行结果
0    95.0
1    85.0
2    96.0
3    93.0
dtype: float64

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

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

相关文章

【linux】进程(深入理解linux进程状态)

开始之前先说一个与本文无关的小知识,chdir命令可以更改当前进程的工作目录哦。 目录 linux具体进程状态:R && S:T && t:D:僵尸进程 && 孤儿进程: OS的理论线:运行&…

讯饶科技 X2Modbus 敏感信息泄露

讯饶科技 X2Modbus 敏感信息泄露 文章目录 讯饶科技 X2Modbus 敏感信息泄露漏洞描述影响版本实现原理漏洞复现修复建议 漏洞描述 X2Modbus是一款功能很强大的协议转换网关, 这里的X代表各家不同 的通信协议,2是To的谐音表示转换,Modbus就是最…

Map系列集合的底层原理及集合嵌套

HashMap集合的底层原理 HashMap跟HashSet的底层原理是一模一样的&#xff0c;都是基于哈希表实现的。 实际上:原来学的Set系列集合的底层就是基于Map实现的&#xff0c;只是Set集合中的元素只要键数据&#xff0c;不要值数据而已。 public HashSet()f{ mapnew HashMap<>…

Java请求体和响应体

请求体 Data JsonNaming(value PropertyNamingStrategies.UpperCamelCaseStrategy.class) public abstract class ApiReq implements LRequest {private String requestID; } 响应体 Data JsonNaming(value PropertyNamingStrategies.UpperCamelCaseStrategy.class) public…

Ps:应用智能锐化滤镜

智能锐化 Smart Sharpen滤镜具有“USM 锐化”滤镜所没有的锐化控制功能。不仅可以设置不同的锐化算法&#xff0c;还可以分别控制在阴影区域和高光区域中进行的锐化量。 ◆ ◆ ◆ 一般使用方法与步骤 1、根据模糊的原因选择“移去”算法&#xff0c;默认是“高斯模糊”。 2、…

制作场景资源的Prefab

制作骨骼模型的Prefab 现在游戏内的使用骨骼模型是通过老版的Animator去实现控制的&#xff0c;所以需要将模型切换为Animator 第一步&#xff0c;动画类型设置为Generic&#xff0c;创建Avatar 模型里面会有对应的Avatar文件 我们还需要一个Controller文件&#xff0c;用于…

镜像:数字时代的自我呈现与虚拟重构

在数字时代&#xff0c;镜像的概念已超越了传统的物理范畴&#xff0c;它不再仅仅是水面或镜面上的反射&#xff0c;而是深入到了我们日常生活的各个角落。作为信息技术发展的重要成果&#xff0c;数字镜像已成为人们认识自我、展现自我和重塑自我的重要工具。#AutoDL #AutoDL …

设计模式-状态模式(State Pattern)结构|原理|优缺点|场景|示例

设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型&#xff08;5种&#xff09; 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型&#xff08;7种&#xff09; 适配器…

Go 语言基础(二)【数组、切片、指针、map、struct】

1、数组 特别需要注意的是&#xff1a;在 Go 语言中&#xff0c;数组长度也是数组类型的一部分&#xff01;所以尽管元素类型相同但是长度不同的两个数组&#xff0c;它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

ArrayList知识点详解

目录 1.简介 2.ArrayList的使用 &#xff08;1&#xff09;如何实例化ArrayList&#xff1f;&#xff08;如何创建&#xff1f;&#xff09; &#xff08;2&#xff09;如何构造使用&#xff1f; &#xff08;3&#xff09;为什么ArrayList的无参构造可以添加数据 &#…

引用参数的不同种类

1. 示例一 #include <iostream> #include <string>struct Obj{Obj(){std::cout << "Ctor called.\n";}Obj(const Obj&){std::cout << "Copy ctor called.\n"; }~Obj(){std::cout << "Dtor called.\n";} }…

rust疑难杂症

rust疑难杂症解决 边碰到边记录&#xff0c;后续可能会逐步增加&#xff0c;备查 cargo build时碰到 Blocking waiting for file lock on package cache 原因是Cargo 无法获取对包缓存的文件锁&#xff0c; 有时vscode中项目比较多&#xff0c;如果其中某些库应用有问题&…

深入理解多层感知机MLP

1. 基础理论 神经网络基础&#xff1a; 目标&#xff1a;了解神经网络的结构&#xff0c;包括神经元、权重、偏置和激活函数。 神经网络是由多个层次的神经元组成的网络&#xff0c;它模拟了人脑处理信息的方式。每个神经元可以接收输入、处理输入并生成输出。这一过程涉及到…

Linux防火墙与SElinux

文章目录 一、防火墙介绍二、iptables和firewalld的区别操作方式&#xff1a;配置层面&#xff1a;性能和管理&#xff1a; 三、iptables与firewalld的优缺点iptablesfirewalld 四、iptables的工作流程五、firewalld的工作流程六、iptables安装与使用6.1、关闭firewalld服务6.2…

c#数据库: 11.分组统计学生信息/ 12.视图查询

该例以学生信息表为例&#xff0c;将学生信息按年级和性别分组&#xff0c;统计各年级男生和女生的人数、总成绩和平均成绩&#xff0c;并将查询结果按平均成绩降序排列。下图是原数据表staq: 【C#实现过程】 &#xff08;1&#xff09;创建一个名为StudentGroup的窗体应用程序…

RK3588S和ARM阵列服务器在虚拟化云平台的应用

RK3588是瑞芯微2021年底推出的首款高端8nm旗舰芯片&#xff0c;而RK3588S 则是针对消费端市场在RK3588基础上缩减了部分外围接口&#xff0c;CPU、GPU和NPU等主要参数得到了保留&#xff0c;主要应用范围为高端ARM平板、ARM笔电产品&#xff0c;会议平板类、ARM服务器、智能机器…

HTML_CSS学习:常用的字符属性

一、字体大小 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>字体大小</title><style>/*body{*//* font-size: 20px;*//*}*/.atguigu1{font-size: 40px;}.atguigu2{font-size: 30px;…

如何批量删除多个不同路径的文件但又保留文件夹呢

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 1、我准备了三个文件夹&#xff08;实际操作的时候可能是上百个文件夹&#xff0c;无所谓&#xff09;&#xff0c;里面都放了两个图片 2、然后打开工具&am…

【Gateway】网关集成Knife4j—swagger接口文档

文章目录 前言一、相关配置1.网关gateway配置①.网关增加配置 pom文件②.网关增加配置 SwaggerHandler③.网关增加配置 SwaggerResourceConfig④.网关增加配置 SwaggerConfig 2.网关过滤器 二、接口文档使用1.访问文档2.查看文档 总结 前言 在日常开发中是需要前后端联调的&am…

09_Scala函数和对象

文章目录 函数和对象1.函数也是对象 scala中声明了一个函数 等价于声明一个函数对象2.将函数当作对象来用&#xff0c;也就是访问函数&#xff0c;但是不执行函数结果3.对象拥有数据类型(函数类型)&#xff0c;对象可以进行赋值操作4.函数对象类型的省略写法&#xff0c;也就是…