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…

C语言| n的阶乘相加

逻辑性较强,建议记住。 分析思路: 假如n4:m m * i; sum sum m; 1)当i1时,m1, sum1。 2)当i2时,m12, sum112。 3)当i3时,m123, sum112123。 4)当i4时&…

集成建筑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; }

Patch文件

目录 Patch文件 什么是 .patch 文件? 如何生成 .patch 文件? 1. 对单个文件生成 .patch 文件 2. 对目录生成 .patch 文件 .patch 文件的结构 应用 .patch 文件 1. 应用到单个文件 2. 应用到目录 3. 指定补丁文件 4. 撤销补丁 5. 操作 常见O…

基础—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技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

智能指针实践

文章目录 1.野指针2.智能指针unique_ptr3.共享指针shared_ptr4.弱指针weak_ptr 1.野指针 2.智能指针unique_ptr 3.共享指针shared_ptr 4.弱指针weak_ptr #include <iostream> #include <memory>using namespace std;/* * 1.野指针 * 2.智能指针unique_ptr * 3.…

04Linux文件系统

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

JavaScript实现平滑滚动

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

跟踪一个Pytorch Module在训练过程中的内存分配情况

跟踪一个Pytorch Module在训练过程中的内存分配情况 代码输出 目的:跟踪一个Pytorch Module在训练过程中的内存分配情况 方法: 1.通过pre_hook module的来区分module的边界 2.通过__torch_dispatch__拦截所有的aten算子,计算在该算子中新创建tensor的总内存占用量 3.通过tensor…

Java八股文面试全套真题

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

进程与线程(一)

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