pandas——对齐运算+函数应用

引言:对齐运算是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN

一、Series的对齐运算

1.Series 按行、索引对齐

import pandas as pds1 = pd.Series(range(10, 20), index=range(10))
s2 =pd.Series(range(20, 25), index=range(5))
print('s1: ')
print(s1)
print('')
print('s2: ')
print(s2)

cc23296e3d2b4b9f86b49511566876ad.png

2.Series的对齐运算

import pandas as pds1 = pd.Series(range(10, 20), index=range(10))
s2 =pd.Series(range(20, 25), index=range(5))
# Series 对齐运算
print(s1 + s2)

04835be9a3a44a4d8d0486ce0cb0c1c1.png

二、DataFrame的对齐运算

1.DataFrame按行、列索引对齐

import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.ones((2, 2)), columns=['a', 'b'])
df2 = pd.DataFrame(np.ones((3, 3)), columns=['a', 'b', 'c'])
print('df1: ')
print(df1)
print('')
print('df2: ')
print(df2)

ea7725c11c8d4305a894cfd40a245254.png

2.DataFrame的对齐运算

import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.ones((2, 2)), columns=['a', 'b'])
df2 = pd.DataFrame(np.ones((3, 3)), columns=['a', 'b', 'c'])
# DataFrame对齐操作
print(df1 + df2)

c5474bf775c041fb974a18eef2323beb.png

三、填充未对齐的数据进行运算

fill_value
使用add, sub, div, mul的同时,
通过fill_value指定填充值,未对齐的数据将和填充值做运算
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.ones((2, 2)), columns=['a', 'b'])
df2 = pd.DataFrame(np.ones((3, 3)), columns=['a', 'b', 'c'])
s1 = pd.Series(range(10, 20), index=range(10))
s2 =pd.Series(range(20, 25), index=range(5))
print(s1)
print(s2)
print(s1.add(s2,fill_value=-1))
print('==================================')
print(df1)
print(df2)
print(df1.sub(df2,fill_value=2.))

5bcf27b158ea47cbb0e813a80bc4b134.png

ba72d08d6ba046cfba3bc0ae9669f6fb.png

四、函数应用

apply applymap 可直接使用 NumPy 的函数
import pandas as pd
import numpy as np# Numpy ufunc 函数
df = pd.DataFrame(np.random.randn(5,4) - 1)
print(df)
print(np.abs(df))

72c8d5eca3d541c880c59375b2e66d8e.png

通过 apply 将函数应用到列或行上
import pandas as pd
import numpy as npdf = pd.DataFrame(np.random.randn(5,4) - 1)print(df.apply(lambda x :x.max()))

f7662206bcb24d9ea23c1b84b464fad5.png

注意指定轴的方向,默认axis=0,方向是列
import pandas as pd
import numpy as npdf = pd.DataFrame(np.random.randn(5,4) - 1)# 指定轴方向,axis=1,方向是行
print(df.apply(lambda x : x.max(), axis=1))

9cebe6924e8f4fea961951089aae2049.png

通过 applymap将函数应用到每个数据上示
import pandas as pd
import numpy as npdf = pd.DataFrame(np.random.randn(5,4) - 1)#使用applymap应用到每个数据
f2 = lambda x : '%.2f' % x
print(df.applymap(f2))

600b1a9a9f6e460a8e1c5b5a60f73493.png

 

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

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

相关文章

画动态爱心(Python-matplotlib)

介绍 氵而已 由于用的是 AI,注释得非常清楚,自己改改也可以用 代码 # -*- coding: utf-8 -*- # Environment PyCharm # File_name 尝试1 |User Pfolg # 2024/11/05 22:45 import numpy as np import matplotlib.pyplot as plt import matplot…

学习threejs,将多个网格合并成一个网格

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.Geometry 几何体1.2 …

对于一个需要渲染300帧的动画项目,云渲染要多久

探讨云渲染动画300帧需要多久的问题时,我们今天来从多个角度进行分析,对于一个需要渲染300帧的动画项目,传统的本地渲染方式可能会因为硬件限制而变得耗时且效率低下。幸运的是,【渲染101】云渲染技术的出现为这一问题提供了解决方…

系统上云-流量分析和链路分析

优质博文:IT-BLOG-CN 一、流量分析 【1】流量组成: 按协议划分,流量链路可分为HTTP、SOTP、QUIC三类。 HTTPSOTPQUIC场景所有HTTP请求,无固定场景国内外APP等海外APP端链路选择DNS/CDN(当前特指Akamai)APP端保底IP列表/动态IP下…

「Mac畅玩鸿蒙与硬件22」鸿蒙UI组件篇12 - Canvas 组件的动态进阶应用

在鸿蒙应用中,Canvas 组件可以实现丰富的动态效果,适合用于动画和实时更新的场景。本篇将介绍如何在 Canvas 中实现动画循环、动态进度条、旋转和缩放动画,以及性能优化策略。 关键词 Canvas 组件动态绘制动画效果动态进度条旋转和缩放性能优…

C 学习(4)

return 0; 前提:C 语言规定,main()是程序的入口函数,即所有的程序一定要包含一个main()函数。程序总是从这个函数开始执行,如果没有该函数,程序就无法启动。其他函数都是通过它引入程序的。 main()的写法&#xff0c…

Springboot3.3 + Mybatis / Mybatis-plus

Java17, Springboot 3.3.5, 项目一启动就报错: Invalid value type for attribute factoryBeanObjectType: java.lang.String 我知道问题出现在pom依赖的版本上。但网上对于Springboot3.3的配置资料并不多,且在我代码上实测还是会报错。搞了一天终于…

高亚科技签约酸动力,助力研发管理数字化升级

近日,中国企业管理软件资深服务商高亚科技与广东酸动力生物科技有限公司(以下简称“酸动力”)正式签署合作协议。借助高亚科技的8Manage PM项目管理软件,酸动力将进一步优化项目过程跟踪与节点监控,提升研发成果的高效…

java多线程编程(二)一一>线程安全问题, 单例模式, 解决程线程安全问题的措施

引言: 如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境应该的结果,则说这个程序是线程安全的 线程安全问题的原因: 一.操作系统的随机调度 : 二.多个线程修改同一个变量: 三.修改操作不是…

推荐一款非常好用的视频编辑软件:Movavi Video Editor Plus

MovaviVideoEditorPlus(视频编辑软件)可以制作令人惊叹的视频,即使您没有任何视频编辑方面的经验! 该款视频编辑程序没有复杂的设置,只需进行直观的拖放控制。在您的电脑上免费使用MovaviVideoEditor亲身体验它的简单易用性与强大功能! 基本简介 您是否…

【算法】递归+深搜+哈希表:889.根据前序和后序遍历构造二叉树

目录 1、题目链接 相似题目: 2、题目 ​3、解法(针对无重复值,哈希表递归) 函数头-----找出重复子问题 函数体---解决子问题 4、代码 1、题目链接 889.根据前序和后序遍历构造二叉树(LeetCode) 相似题目: 105.…

高级信号完整性

高级信号完整性,2022年版,1473页,24h秒发 内容庞大,都是新的内容、架构 QS排名100内的美国高校课件 发货内容: 29个分章节PDF 1个汇总PDF,1473页 点击获取 课程首先对电磁学进行了回顾。随后,…

yelp数据集上识别潜在的热门商家

yelp数据集是研究B2C业态的一个很好的数据集,要识别潜在的热门商家是一个多维度的分析过程,涉及用户行为、商家特征和社区结构等多个因素。从yelp数据集里我们可以挖掘到下面信息有助于识别热门商家 用户评分和评论分析 评分均值: 商家的平均评分是反映其…

qt QDataStream详解

1. 概述 QDataStream是Qt框架中的一个核心类,主要用于处理二进制数据的序列化和反序列化。它提供了高效、跨平台的方式,将C数据结构转化为字节流,便于在网络传输、持久化存储等场景下使用。QDataStream可以处理包括整数、浮点数、布尔值、字…

使用Spring Validation实现数据校验详解

目录 前言1. Spring Validation概述2. 配置Spring Validation2.1 引入依赖2.2 启用全局校验 3. 使用注解进行参数校验3.1 基本校验注解3.2 使用Pattern进行正则校验3.3 综合示例 4. 在控制器层应用校验4.1 方法参数校验4.2 自定义错误处理 5. 高级应用:自定义校验注…

链表(C 语言)

目录 一、链表的概念1. 链表的结构2. 链表的分类3. 链表的优势 二、链表的实现1. 无头单项非循环链表的实现1.1 代码说明 2. 带头双向循环链表的实现2.1 代码说明 三、链表和顺序表的区别四、链表总结 一、链表的概念 链表是一种顺序表,它由一个一个的节点组成&…

QinQ的基础实验

拓扑 命令 LSW1 [LSW1]vlan batch 2 3 4 Info: This operation may take a few seconds. Please wait for a moment...done. [LSW1]interface g0/0/1 [LSW1-GigabitEthernet0/0/1]port link-type hybrid [LSW1-GigabitEthernet0/0/1]port hybrid untagged vlan 2 3 [LSW…

python-读写Excel:openpyxl-(4)下拉选项设置

使用openpyxl库的DataValidation对象方法可添加下拉选择列表。 DataValidation参数说明: type: 数据类型("whole", "decimal", "list", "date", "time", "textLength", "custom"…

Elasticsearch中时间字段格式用法详解

Elasticsearch中时间字段格式用法详解 攻城狮Jozz关注IP属地: 北京 2024.03.18 16:27:51字数 758阅读 2,571 Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。它提供了全文搜索、结构化搜索以及分析等功能,广泛…

【JavaEE初阶 — 多线程】Thread的常见构造方法&属性

目录 Thread类的属性 1.Thread 的常见构造方法 2.Thread 的几个常见属性 2.1 前台线程与后台线程 2.2 setDaemon() 2.3 isAlive() Thread类的属性 Thread 类是JVM 用来管理线程的一个类,换句话说,每个线程都有一个唯一的Thread 对象与之关联&am…