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,一经查实,立即删除!

相关文章

2024/11/06学习日志

为了更好地记录并反思自己的学习状况,将每日学习的内容、时长、心得等记录于此日志。 于9月3日开始记录,计划每日记录,希望至少能够坚持一个学期。 学习内容: 大物: maxwell方程组,电磁波的初步。 计数…

画动态爱心(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 …

练习题 - Django 4.x Test 单元测试使用示例和配置方法

在现代软件开发中,单元测试是保障代码质量的一个重要环节。通过单元测试,开发者能够验证代码的正确性,确保代码的变更不会引入新的错误。Django 作为一个功能强大的 web 框架,内置了丰富的测试工具,使得开发者能够轻松编写、执行和维护测试用例。掌握 Django 的单元测试方…

对于一个需要渲染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 实训第12天 (git版本控制继续)

Linux下使用到的命令: ls -al //查看当前目录下的文件及文件夹 mkdir //新建目录 rm -rf //递归强制删除文件夹 版本控制 一、安装配置 1、下载地址 https://git-scm.com/ 2、初始配置 #用户名 git config --global user.n…

15分钟学 Go 第 35 天:Go的性能调优 (7000字详细教程)

第35天:Go的性能调优 目标:理解Go语言中基本的性能优化,学习如何分析和提高Go程序的执行效率。 一、性能调优概述 性能调优是软件开发中的一个重要环节,它可以确保程序在资源有限的环境下高效运行。Go语言天生具备高效的性能表现…

Linux APT 教程:从入门到精通

APT(Advanced Package Tool)是Debian及其衍生发行版(如Ubuntu)中的一个强大且用户友好的软件包管理工具。它允许用户轻松地安装、更新、升级和卸载软件包,同时处理复杂的依赖关系。本教程将从入门到精通,带…

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

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

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

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

Pimpl(Pointer to Implementation)模式详解

Pimpl(Pointer to Implementation)模式详解 在 C 中,Pimpl 模式(Pointer to Implementation)是一种设计技巧,常用于隐藏实现细节,减少头文件的依赖。这种模式又被称为“隐式实现”或“编译防护…

js下载excel示例demo

<Buttontype{"primary"}key"out"onClick{async ()>{const ExportJsonExcel require("js-export-excel");const datas selectedRowsState //确保勾到的数据是一个列表&#xff0c;列表中每个值是字典const option {};const dataTable […

mac 修改启动图图标数量

调整每行显示图标数量&#xff1a; defaults write com.apple.dock springboard-rows -int 7 调整每列显示的数量 defaults write com.apple.dock springboard-columns -int 8 最后重置一下启动台 defaults write com.apple.dock ResetLaunchPad -bool TRUE;killall Dock 其…

Go使用SIMD指令——以string转为整数为例

本文Go使用SIMD指令采用如下方式&#xff1a; C编写对应的程序clang编译成汇编c2goasm将上述生成的汇编转为go的汇编 准备工具 clang。直接使用apt-get install clang安装即可c2goasm。 go get -u github.com/minio/c2goasm来进行安装asm2plan9s。 go get -u github.com/min…

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

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