1分钟带你搞定Pandas DataFrame运算

1. DataFrame之间的运算

  • 在运算中自动对齐不同索引的数据

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

  • DataFrame没有广播机制

导包

# 导包import numpy as npimport pandas as pd

创建 DataFrame df1 不同人员的各科目成绩,月考一

# 创建DataFrame二维数组df1 = pd.DataFrame(    data = np.random.randint(10,100,size=(3,3)),    index = ["小明","小红","小黄"],    columns = ["语文","数学","英语"])df1

语文数学英语
小明592658
小红147453
小黄492899

创建 DataFrame df2 不同人员的各科目成绩,月考二

df2 = pd.DataFrame(    data = np.random.randint(10,100,size=(3,3)),    index = ["小明","小红","小黄"],    columns = ["语文","数学","英语"])df2

语文数学英语
小明557113
小红424955
小黄346836

DataFrame和标量之间的运算

df1 + 100

语文数学英语
小明159126158
小红114174153
小黄149128199
df1 - 100

语文数学英语
小明-41-74-42
小红-86-26-47
小黄-51-72-1

df1 * 100 

语文数学英语
小明590026005800
小红140074005300
小黄490028009900

df1 / 100

语文数学英语
小明0.590.260.58
小红0.140.740.53
小黄0.490.280.99

df1 % 10

语文数学英语
小明968
小红443
小黄989

df1 ** 2

语文数学英语
小明34816763364
小红19654762809
小黄24017849801

DataFrame之间的运算

# 必须匹配行和列的索引df1 + df2

语文数学英语
小明8450116
小红85144145
小黄121115179

使用 .add() 函数,填充数据

df3 = pd.DataFrame(    data = np.random.randint(10,100,size=(4,4)),    index = ["小明","小红","小黄","小绿"],    columns = ["语文","数学","英语","物理"])display(df1,df3)

语文数学英语
小明592658
小红147453
小黄492899

语文数学英语物理
小明30405959
小红46725696
小黄25209973
小绿92784144

df1 + df3

数学物理英语语文
小明66.0NaN117.089.0
小红146.0NaN109.060.0
小绿NaNNaNNaNNaN
小黄48.0NaN198.074.0
# 先填充0,再相加df1.add(df3,fill_value=0)

数学物理英语语文
小明66.059.0117.089.0
小红146.096.0109.060.0
小绿78.044.041.092.0
小黄48.073.0198.074.0

# 除法df1.divide(df3,fill_value=2)

数学物理英语语文
小明0.6500000.0338980.9830511.966667
小红1.0277780.0208330.9464290.304348
小绿0.0256410.0454550.0487800.021739
小黄1.4000000.0273971.0000001.960000

2. Series与DataFrame之间的运算

  • 使用Python操作符:以行为单位操作(参数必须是行),对所有行都有效

    • 类似于NumPy中二维数组与一维数组的运算,但可能出现NaN

  • 使用Pandas操作函数:

    • axis=0:以列为单位操作(参数必须是列),对所有列都有效

    • axis=1:以行为单位操作(参数必须是行),对所有行都有效

s = pd.Series([100,10,1],index=df1.columns)s
语文    100
数学     10
英语      1
dtype: int64
df1 + s

语文数学英语
小明1593659
小红1148454
小黄14938100
 

df1.add(s)

语文数学英语
小明1593659
小红1148454
小黄14938100

# axis:(0 or "index",1 or "columns"),默认为列df1.add(s,axis="columns")

语文数学英语
小明1593659
小红1148454
小黄14938100

df1.add(s,axis=1)

语文数学英语
小明1593659
小红1148454
小黄14938100

s = pd.Series([100,10,1],index=df1.index)s
小明    100
小红     10
小黄      1
dtype: int64
# 行df1.add(s,axis=0)

语文数学英语
小明159126158
小红248463
小黄5029100

df1.add(s,axis="index")

语文数学英语
小明159126158
小红248463
小黄5029100

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

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

相关文章

想要修改Excel表格内容,怎么移除编辑权限?

在使用Excel进行数据处理和管理时,我们经常会遇到需要保护工作表以防止误操作的情况。有时可能碰到“被保护单元格不支持此功能”的提示,本文将详细介绍这个问题的解决方案,帮助你取消单元格保护,使用所需的功能。 一、取消单元格…

【Unitydemo制作】音游制作—排行榜逻辑Json存储

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:就业…

GQL 来了!ISO/IEC 正式发布 GQL 数据库国际标准!

历时四年筹备,超过20个国家的标准和技术专家参与制定,ISO/IEC GQL (图查询语言)标准于2024年4月12日正式发布! 作为国际标准化组织(ISO)继 1987年 发布SQL后,唯一发布的数据库查询语…

瑞米派Ubuntu系统移植指南-米尔RemiPi

1.概述 Linux系统平台上有许多开源的系统构建框架,这些框架方便了开发者进行嵌入式系统的构建和定制化开发,目前比较常见的有Buildroot, Yocto, OpenEmbedded等等。 同时更多的传统的桌面系统也加入到嵌入式环境体系中,如Ubuntu&#xff0c…

Marin说PCB之POC电路layout设计仿真案例---03

今天天中午午休的时候,我刚要打开手机的准备刷抖音看无忧传媒的学生们的“学习资料”的时候,看到CSDN -APP上有提醒,一看原来是一位道友发的一个问题: 本来小编最近由于刚刚从国外回来,手上的项目都已经结束了&#xf…

Matlab:音频处理

用Matlab绘制一段音频信号在时域上的波形图,然后用低通滤波器滤掉噪音并再次绘制 1、导入音频文件 filename X:\1.mp3; % 替换为你的音频文件路径 [x, Fs] audioread(filename); 2、获取音频信号长度 len length(x); 3、计算时间轴 t (0:len-1) / Fs; 4、…

小程序properties默认值定义及父子组件的传值

因经常写vue,很久没写小程序,容易串频道,现记录一下小程序的组件用法、监听传入值及父子传值方式 首先小程序中传值是没有:(冒号)的,其次properties中定义默认值不需要写default 1.自定义组件中,首先json…

踩坑——纪实

开发踩坑纪实 1 npm安装1.1 查看当前的npm镜像设置1.2 清空缓存1.3 修改镜像1.4 查看修改结果1.5 重新安装vue 2 VScode——NPM脚本窗口找不到3 springboot项目中updateById()失效4 前端跨域4.1 后端加个配置类4.2 CrossOrigin注解 5 路由出口6 springdoc openapi3 swagger3文件…

C语言函数递归

文章目录 一、递归1.递归的概念2.递归的思想3.递归的限制条件 二、递归的一些典型例子1.求一个数的阶乘2.顺序打印一个整数的每一位3.汉诺塔4.青蛙跳台阶5斐波那契数列递归和迭代的对比 一、递归 1.递归的概念 递归是学习C语言函数绕不开的一个话题,那什么是递归呢…

PyTorch中Tensor简介

PyTorch中所有的操作都是基于Tensor(张量)的,因此理解张量的含义并能够自由创建张量是十分必要的。 张量是PyTorch中最基本的操作对象。我们可以用数学中的概念来辅助理解一下张量,如图5-1所示。 标量(Scalar&#x…

c#数据库的增删改查

** 安装数据库包 ** 在使用 SQLite 数据库时,你需要安装适当的 NuGet 包来提供与 SQLite 的集成。 1.打开 Visual Studio 中的你的项目 2.在顶部菜单栏中选择 “项目” -> “管理 NuGet 包” 3.在 NuGet 管理器中搜索 “System.Data.SQLite” 4.找到适合你项目…

【openlayers系统学习】1.1渲染GeoJSON,添加link交互

一、渲染GeoJSON 在进入编辑之前,我们将看一下使用矢量源和图层进行基本要素渲染。Workshop在 data​ 目录中包含一个 countries.json​ GeoJSON文件。我们首先加载该数据并将其渲染在地图上。 首先,编辑 index.html​ 以便向地图添加深色背景&#xf…

使用llama.cpp实现LLM大模型的格式转换、量化、推理、部署

使用llama.cpp实现LLM大模型的量化、推理、部署 大模型的格式转换、量化、推理、部署概述克隆和编译环境准备模型格式转换GGUF格式bin格式 模型量化模型加载与推理模型API服务模型API服务(第三方)GPU推理 大模型的格式转换、量化、推理、部署 概述 llama.cpp的主要目标是能够在…

【软考中级 软件设计师】数据结构

数据结构是计算机科学中一个基础且重要的概念,它研究数据的存储结构以及在此结构上执行的各种操作。在准备软考中级-软件设计师考试时,掌握好数据结构部分对于通过考试至关重要。下面是一些核心知识点概览: 基本概念: 数据结构定义…

VBA_MF系列技术资料1-615

MF系列VBA技术资料1-615 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-0…

spring-boot集成slf4j(二)logback配置详解

一、configuration 根节点:configuration,作为顶级标签, 可以用来配置一些lockback的全局属性,常见的属性如下: (1)scan“true” :scan是否开启自动扫描,监控配置文件更…

el-table 组件实现 “合并单元格 + N行数据小计” 功能

目录 需求 - 要实现的效果初始代码代码升级(可供多个表格使用)CommonTable.vue 子组件 使用子组件1 - 父组件 - 图1~图3使用效果展示 使用子组件2 - 父组件 - 图4使用效果展示 注意【代码优化 - 解决bug】 需求 - 要实现的效果 父组件中 info 数据示例 …

内网安全之证书服务基础知识

PKI公钥基础设施 PKI(Public Key Infrastructure)公钥基础设施,是提供公钥加密和数字签名服务的系统或平台,是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。企业…

element-plus:踩坑日记

el-table Q:有fixed属性时,无数据时,可能出现底部边框消失的bug 现象: 解决方法: .el-table__empty-block {border-bottom: 1px solid var(--el-table-border-color); } el-collapse 折叠面板 Q:标题上…

云平台的安全能力提升解决方案

提升云平台的安全能力是确保数据和服务安全的关键步骤。针对大型云平台所面临的云上安全建设问题,安全狗提供完整的一站式云安全解决方案,充分匹配云平台安全管理方的需求和云租户的安全需求。协助大型云平台建设全网安全态势感知、统一风险管理、统一资…