Pandas 使用 concat 数据合并你学会了吗?

1. 使用pd.concat()级联

  • pandas使用pd.concat函数,与np.concatenate函数类似

# 导包import numpy as npimport pandas as pd# 为方便讲解,我们首先定义一个生成DataFrame的函数def make_df(indexs,columns):    data = [[str(j)+str(i) for j in columns] for i in indexs]    df = pd.DataFrame(data=data,index=indexs,columns=columns)    return dfmake_df([1,2,3,4],list("ABCD"))

ABCD
1A1B1C1D1
2A2B2C2D2
3A3B3C3D3
4A4B4C4D4

  • 简单级联

df1 = make_df([1,2],["A","B"])df2 = make_df([3,4],["A","B"])display(df1,df2)

AB
1A1B1
2A2B2

AB
3A3B3
4A4B4

# 默认上下合并(垂直合并)pd.concat([df1,df2])

AB
1A1B1
2A2B2
3A3B3
4A4B4

# 左右合并(水平合并)pd.concat([df1,df2],axis=1)

ABAB
1A1B1NaNNaN
2A2B2NaNNaN
3NaNNaNA3B3
4NaNNaNA4B4

# 忽略行索引:重置索引pd.concat([df1,df2],ignore_index=True)

AB
0A1B1
1A2B2
2A3B3
3A4B4

# 使用多层索引 keyspd.concat([df1,df2],keys=["x","y"])

AB
x1A1B1
2A2B2
y3A3B3
4A4B4

pd.concat([df1,df2],keys=["x","y"], axis=1)

xy
ABAB
1A1B1NaNNaN
2A2B2NaNNaN
3NaNNaNA3B3
4NaNNaNA4B4

  • 不匹配级联

不匹配指的是级联的维度的索引不一致,例如纵向级联时列索引不一致,横向级联时行索引不一致。

df3 = make_df([1,2,3,4],list("ABCD"))df4 = make_df([2,3,4,5],list("BCDE"))display(df3,df4)

ABCD
1A1B1C1D1
2A2B2C2D2
3A3B3C3D3
4A4B4C4D4

BCDE
2B2C2D2E2
3B3C3D3E3
4B4C4D4E4
5B5C5D5E5

# 对应索引没有值,会自动用NaN填充pd.concat([df3,df4])

ABCDE
1A1B1C1D1NaN
2A2B2C2D2NaN
3A3B3C3D3NaN
4A4B4C4D4NaN
2NaNB2C2D2E2
3NaNB3C3D3E3
4NaNB4C4D4E4
5NaNB5C5D5E5

# 外连接:类似并集,显示所有数据pd.concat([df3,df4],join="outer")

ABCDE
1A1B1C1D1NaN
2A2B2C2D2NaN
3A3B3C3D3NaN
4A4B4C4D4NaN
2NaNB2C2D2E2
3NaNB3C3D3E3
4NaNB4C4D4E4
5NaNB5C5D5E5

# 内连接:类似交集,只显示共同的部分pd.concat([df3,df4],join="inner")

BCD
1B1C1D1
2B2C2D2
3B3C3D3
4B4C4D4
2B2C2D2
3B3C3D3
4B4C4D4
5B5C5D5

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

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

相关文章

PWN-栈迁移

栈迁移 题目:BUUCTF在线评测 (buuoj.cn) 知识点:栈迁移 使用情况:题目中有栈溢出,但是 栈溢出的范围 有限,导致构造的ROP链不能完全写入到栈中,此时需要进行栈迁移,将栈迁移到能接受更多数据的…

go语言基于Gin集成后台管理系统开发定时任务管理cron/v3好用又好看

系统目前是支持两种定时类型,一种是函数类型,一种是接口类型,来支持多样的业务;时间周期可视化选择,方便设定执行周期。框架UI漂亮,添加管理定时任务设置简单,客户都可以做自己调整执行时间周期…

win10环境下nodejs安装过程

打开 https://nodejs.org/en/官网下载node.js 2.下载完成后的安装文件为node-v16.16.0-x64.msi,双击进行安装即可。 3.一直默认安装,记得可以更改安装路径 4.其他不用打勾,一直next,安装完成即可。 5.安装完成后,wi…

集成建筑5G商城为建筑行业开拓新方向

集成建筑5G商城为建筑行业开拓新方向 建筑业在我国有着悠久的发展历史,近年来,伴随着我国经济的快速增长、城镇化步伐加快,我国房地产、建筑业持续增长,建筑业显现出巨大的发展潜力。建筑行业近年来始终保持较高的增长速度。根据…

论文作图之高压缩比导出PDF

笔者使用Adobe Illustrator 2023创建可编辑pdf图,按照默认的导出设置保存pdf文件时,得到的图存储很大。为了解决存储过大且还保留一定编辑功能的问题,作者实践出了一种导出pdf的设置方法。 首先在AI中点击文件->存储为,点击保…

纯Java实现Google地图的KMZ和KML文件的解析

目录 前言 一、关于KMZ和KML 1、KMZ是什么 2、KML是什么 二、Java解析实例 1、POM.xml引用 2、KML 基类定义 3、空间对象的定义 4、Kml解析工具类 三、KML文件的解析 1、KML解析测试 2、KMZ解析测试 四、总结 前言 今天是六.一儿童节,在这里祝各位大朋友…

el-table超过宽度强制显示滚动条

使用css强制显示: .el-table .el-table__body-wrapper::-webkit-scrollbar {display: block; }

基础—SQL—DCL(数据控制语言)之用户管理

一、引言 分类全称描述DCLData Control Language(数据控制语言)用来创建和管理数据库用户以及控制数据库的访问权限 1、图解 右边的是我们的 MySQL 的数据库服务器,左边是假设的两个用户 1、 DCL 主要控制的就是有哪些用户可以来访问这台 My…

Python学习需要哪些知识基础?

基础知识是非常重要的,这些内容确实是Python学习的基础。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我在后台发给你。…

各大平台取消一年期免费SSL证书后,如何申请超长期免费SSL证书

一:为什么一定要用SSL证书 SSL证书是一种提供网络安全的协议,主要作用是提供对用户和服务器的认证以及确保传送的数据进行加密和隐藏,从而保证数据的完整性和安全性。网站安装SSL证书后就可以实现HTTPS访问,消除网站访问不安全提…

ssm汉服文化平台网站

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

04Linux文件系统

课程目标 1、了解Linux操作系统的硬盘分区信息 2、了解Linux操作系统重各目录的作用 3、了解Linux的启动级别以及关机和重启命令 课程实验 在xshell中使用df -h ,df -T,du -sh,fdisk -|,cd ,pwd 使用top ,free,cat/proc/xxx…

JavaScript实现平滑滚动

● 本次我们将实现点击按钮时候,可以平滑得滚动到指定位置 ● 首先我们获取到按钮信息和想要滚动到得章节 const btnScrollTo document.querySelector(.btn--scroll-to); const section1 document.querySelector(#section--1);● 下一步就是添加点击事件了 bt…

Java八股文面试全套真题

Java八股文面试全套真题 一、Redis1.1、你在最近的项目中哪些场景使用了redis呢?1.2、缓存穿透1.3、布隆过滤器1.4、缓存击穿1.5、缓存雪崩1.6、redis做为缓存,mysql的数据如何与redis进行同步呢?(双写一致性)1.6.1、读…

进程与线程(一)

进程与线程(一) 理解什么是并发编程进程的相关概念什么是进程对比进程和程序理解进程是一个独立的可调度的任务理解进程是程序执行和资源管理的最小单位进程状态转换图进程的种类 进程相关命令进程状态标志ps命令-aux:-axj:(可以查看到进程的PPID)pstree…

浅析R16移动性增强那些事儿(DAPS/CHO/MRO)

R16移动性增强相关技术总结 Dual Active Protocol Handover Dual Active Protocol Handover意为双激活协议栈切换,下文简称DAPS切换,DAPS切换的核心思想是切换过程中,在UE成功连接到目标基站前继续保持和源基站的连接和数据传输,…

【全开源】Java共享台球室无人系统支持微信小程序+微信公众号+H5

智能引领台球新体验 一、引言:共享经济的新篇章 在共享经济的大潮中,各类共享服务层出不穷,为人们的生活带来了极大的便利。共享台球室作为其中的一员,以其独特的魅力吸引了众多台球爱好者的目光。而今天,我们要介绍…

【通信专题】I2C上拉电阻计算方法

I2C 通信总线是电子设计中常见的总线之一,由于 I2C 的硬件芯片内部为开漏输出,所以要求在外部增加一个上拉电阻,总线上拉电阻的选取受多个因素的影响,因此如何计算 I2C 总线的上拉电阻阻值成为硬件工程师在使用 I2C总统时需要关注的话题。 从本质上讲: I2C 总线电容和上升…

算法第三天力扣第69题:X的平方根

69. x 的平方根 (可点击下面链接或复制网址进行做题) https://leetcode.cn/problems/sqrtx/https://leetcode.cn/problems/sqrtx/ 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内…

基于Qt GraphicView 解析 CIM/G 电力接线图文件

本文讲述了如何使用Qt的框架来渲染展示标准的CIM/G格式的图形文件,也就是公用信息模型(common information model,CIM)中的G文件部分的内容。这是一种电力系统图形的交换规则,用于电网图形交换。 [by amjieker] CIM/G …