pandas表格并表(累加合并)

news2024/10/1 12:21:05

今天需求是用pandas的两张表格合并起来,其中重复的部分将数据进行相加。
用到的是combine()这个函数。

函数详细的使用可以看这个大佬的文章:
https://www.cnblogs.com/traditional/p/12727997.html
(这个文章使用的测试数据有个陷阱,后面会说。)

我想说的一个场景是这样的:
表一:
在这里插入图片描述
表二:
在这里插入图片描述
可以看到两个测试表的区别在于D列,表一的D列是没有数据的,而表二的有。

一开始直接使用这个语句进行合并:

def sum(a, b):
    return a + b
final_df = df_one.combine(df_two, sum)

在这里插入图片描述
得到的结果是这样的,明明表二的D列有数据,但是没有合并。

跟了下代码,这里的a + b是实际上将两个Series进行加操作,应该是nan加上一个数字的时候会报错,但是pandas的处理将出现错误的格子的错误信息忽视掉了,所以导致没有合并。
series.py文件
这里就要提到上面那个文章里面的陷阱,测试数据都是使用单行Series进行合并,所以combine后面的func实际上是对单个数值变量进行操作。
而如果你和我一样是用一个二维的dataframe表进行combine,他其实是对每个Series进行操作,所以简单的用+进行合并操作是会有问题的。这一点尤其是在使用lambda表达式这种匿名函数时更容易被忽视的。
那对于二维的Dataframe表格我提出的解决办法是:

def sum(a, b):
    if pd.isna(a):
        return b
    elif pd.isna(b):
        return a
    else:
        return a + b
        
def sum_s(a, b):
    return a.combine(b, sum)
    
final_df = df_one.combine(df_two, sum_s)

对combine操作进行嵌套,我明白我这个代码非常丑,但是他能用。
如果你能把这个代码写的更漂亮,欢迎你在评论区指出,如果看到我会及时修改。

碎碎念:
可能比较少人直接用pandas做excel处理的库?我用的搜索引擎没有找到对pandas进行并表的操作。
挺奇怪的,我觉得pandas明明非常好用,对格式兼容很好。Dataframe的使用也非常舒服。

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

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

相关文章

vue之为什么data属性是一个函数而不是一个对象?

为什么data属性是一个函数而不是一个对象为什么data属性是一个函数而不是一个对象?一、实例和组件定义data的区别二、组件data定义函数与对象的区别三、原理分析四、结论为什么data属性是一个函数而不是一个对象? 一、实例和组件定义data的区别 vue实例…

嵌入式物联网【数据处理篇】特殊字符处理(Postman 400 Bad Request)

目录 一、Postman 400 Bad Request 二、C语言特殊字符处理 三、QUrl toPercentEncoding 处理url中含有特殊字符转码 16进制ASCII码对照表 一、Postman 400 Bad Request http请求链接中的特殊字符处理 解决包括Postman 中的post、get等链接请求中的特殊字符(如…

谷歌关键词优化多少钱【2023年调研】

本文主要分享Google关键词排名优化的一些成本调研,方便大家参考。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 今年2023年了,谷歌关键词优化到底要多少钱? 答案是:价格在2w~25w左右…

c++终极螺旋丸:₍˄·͈༝·͈˄*₎◞ ̑̑“类与对象的结束“是结束也是开始

文章目录 前言一.构造函数中的初始化列表 拷贝对象时的一些编译器优化二.static成员三.友元四.内部类总结前言 前两期我们将类和对象的重点讲的差不多了,这一篇文章主要进行收尾工作将类和对象其他的知识点拉出来梳理一遍,并且补充前两篇没有讲过的…

第3集丨Java中的异常、处理方式及自定义异常汇总

目录一、异常的分类1.1 常见的运行时异常1.2 常见的检查异常1.3 继承关系二、异常处理机制三、try…catch…finally四、声明抛出异常五、人工抛出异常六、自定义异常任何一种程序设计语言设计的程序在运行时都有可能出现错误,例如除数为0,数组下标越界&a…

别学英语了,真的

文 / 王不留(微信公众号:王不留) 这两年,很多朋友加我微信后,第一句常是,学英语有什么用啊? 我会统一给出真诚答复:没用,真的。 看新闻,中文海量信息已经严重…

建筑行业固定资产管理解决方案

建筑行业的固定资产种类和数量都较多,常用的固定资产有:办公设备、机械、设备、工具等。设备的调拨、购置、测试、验收、建帐立卡、分类编号、技术档案、供应分配、清查盘点、提取折旧、报废、设备维修、设备保养、备件管理、设备巡检和点检等工作&#…

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例 如下图所示,打开TIA博途创建一个新项目,并通过“添加新设备”组态 S7-1200 客户端 ,选择 CPU1214C DC/DC/DC (client IP:192.168.0.102),建立新子网; 首先编写客户端程序:打开OB1编程界面,选择指令…

图片如何提取文字?

在当今信息爆炸的时代,图文并茂已经成为了一个广告宣传的常用方式。然而,图片中的文字信息往往难以获取,尤其对于那些需要快速获取信息的人们来说,阅读图片中的文字会是一项繁琐且费时的任务。现在,我们有一个好消息要…

如何熟练掌握Python在气象水文中的数据处理及绘图【免费教程】

pythonPython由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多…

[python课程设计1]学生成绩管理系统

引言本课程设计使用数据库,熟悉了Python语言操作数据库,对数据库的增删改查,实现Qt designer界面设计以及excel表格的读写,代码通俗易懂,方便对所学知识的掌握。需求分析用类对学生成绩、代码封装使得操作使用简单&…

java开启线程的四种方法

文章目录1、继承Thread类1.1 代码实现1.2 测试结果2、实现Runnable接口2.1 方式一:直接实现Runnable接口2.1.1 代码实现2.1.2 测试结果2.2 方式二:匿名内部类2.2.1 代码实现2.2.2 测试结果3、实现Callable接口3.1 代码实现3.2 测试结果4、创建线程池4.1 …

常见帧率计算方法实际效果对比及EasyCVR平台的帧率计算方法

什么是帧、帧数、帧率? 帧 (Frame) 帧可以理解为视频或者动画中的每一张画面,而视频和动画特效是由无数张画面组合而成,每一张画面都是一帧。 帧数(Frames) 帧数是帧生成的数量。如果一个动画…

Scala 变量和数据类型(第二章)

第二章、变量和数据类型2.1 注释2.2 变量和常量(重点)2.3 标识符的命名规范2.4 字符串输出2.5 键盘输入2.6 数据类型(重点)回顾:Java数据类型Scala数据类型2.7 整数类型(Byte、Short、Int、Long&#xff09…

OpenAI CEO喊麦ChatGPT:你很酷,但却是个“糟糕的产品”

OpenAI 联合创始人兼CEO山姆阿尔特曼(Sam Altman)最近在一档播客节目中称ChatGPT 为“糟糕的产品”。 阿尔特曼说,“人们访问的是一个有时能用,有时不能用的网站。”他指的是ChatGPT频繁出现的错误消息。 他补充说道:…

【GO】K8s 管理系统项目[API部分--Workflow]

K8s 管理系统项目[API部分–Workflow] 年终于算过完了,身体也康复了,继续学习 1. DB设置 1.1 连接配置 service/config.go package configimport "time"const (ListenAddr "0.0.0.0:9091"KubeConfig "D:\\golang\\k8s-plantform\\config\\cka&…

有序表(中):Size Balanced Tree(SBT/SB树)

1、SB树简介 本质上是一棵二叉搜索树,SB树全称 Size Balanced Tree,顾名思义,这是一棵通过大小(Size)域来维持平衡的二叉搜索树。 它不仅支持简单的二叉搜索树操作,也支持 Select 和 Rank。 定义一下Siz…

每天一道大厂SQL题【Day10】电商分组TopK实战

每天一道大厂SQL题【Day10】电商分组TopK实战 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…

Linux入门篇(二)

Linux前言链接文件符号链接(软链接)硬链接shellshell 的类型shell的父子关系理解外部命令和内建命令外部命令内建命令Linux环境变量PATH环境变量前言 在这一章,我对Linux中有关shell较为深入的理解和环境变量方面知识的一个记录。同时&#x…

PBR工作流实现与对比

工作流实现工作流中的核心内容便是贴图,不论是UE4还是Unity都支持将PBR的参数以贴图的形式传入引擎,我们可以根据一个物体同一mesh或不同mesh的不同区域的属性差异来控制贴图上的属性产生不同,而没有贴图的话,一个物体只能使用一种…