pandas concat_pandas-数据合并-concat(最全参数解释,含代码和实例)

pandas中的concat的功能:

假设你现在需要将多个数据合并,前提是:这几个文件列名都一致,也就是说这几个文件格式完全一样,只是数据不太一样,类似于合并多个文件这种,实际数据分析中也会遇到这种情况,那该怎么做呢?(可能也会遇到格式不一样的情况,当然也是可以合并的正文也会讲解)下面来一起学习下在pandas中如何快速合并文件:

主要分为两种情况

纵向合并:

需要注意的是,axis=0也就是默认值的时候,合并的时候是按照两个数据的列名称作为键来和合并的。

s1 = pd.Series(['a', 'b'])s2 = pd.Series(['c', 'd'])pd.concat([s1, s2])
1eca0741dabba736bc42d1fffda61335.png

横向合并:(axis=1,)

类似于merge,但是和merge也不一样,如果设置axis=1合并的时候是按照索引来合并的,merge可以设置左右两个数据的合并键,这点要区分。

result = pd.concat([df1, df4], axis=1)
65a6fc0f5c94a908850d7f89276ee6d4.png

需要重点掌握的概念:

  1. concat和merge不一样,虽然都是合并,但是merge更多的是数据匹配,根据共同的键来匹配,和sql中的查询很类似,和excel中的vlookup很像,而concat是数据合并,不需要设置合并的键,
  2. 合并的keys:axis=0是按照列名,axis=1是按照索引来合并
  3. concat的概念不仅存在于数据合并,在数据分组groupby中也隐藏着它的踪迹,先分组,每个分组统计,然后合并,其意义与我们合并数据是一样的
  4. 当axis=1的时候也就是横向合并,它的意义和merge很类似,需要好好区分

通过上面两个简单的例子,应该能初步认识concat

下面通过实例完整的掌握这个知识点:

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,

keys=None, levels=None, names=None, verify_integrity=False,

copy=True)

最简单的纵向合并(有人也叫轴向合并,但是我总分不清楚,就叫它纵向合并吧)

import pandas as pdone = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5])two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5])rs = pd.concat([one,two])print(rs)

结果:

41680302d7b990a29ac2123096b2a59e.png

objs︰ 传入一个需要合并的序列

axis: {0,1,...},默认值为 0。要连接沿轴。

ignore_index︰ 布尔值、 默认 False。这个参数很重要,纵向合并多个文件时,默认为原来的索引,这样势必导致会有重复的索引值,如果想要一个全新的索引,就设置这个参数为True

在没有设置这个参数的时候可以看到结果中的索引均为各自原先的索引,下面看看设置后的:

rs = pd.concat([one,two],ignore_index=True)

结果:

08a33e5e317a533f098e3fb1e0be9eaf.png

keys︰ 序列,默认为无。构建分层索引使用通过的键作为最外面的级别。如果多个级别获得通过,应包含元组。

如果你写成下面这种方式,keys的结果会被ignore覆盖掉

rs = pd.concat([one,two],ignore_index=True,keys=["a

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

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

相关文章

java中的de是什么_【转】java中main函数解析

源地址:http://www.cnblogs.com/xwdreamer/archive/2012/04/09/2438845.html从写java至今,写的最多的可能就是主函数public static void main(String[] args) {}但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样…

JAVA多线程(一)线程安全问题产生的原因

JAVA线程内存与主存间映射示意图Java内存模型中规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程使用的变量到主内存副本拷贝,线程对变量的所有操作(读取、赋值)都必须在工…

两顶点的路径长度为k_计算两个顶点之间的所有可能路径

两顶点的路径长度为kWhat to Learn? 学什么? How to count all possible paths between two vertices? 如何计算两个顶点之间的所有可能路径? In the graph there are many alternative paths from vertex 0 to vertex 4 在图中,有许多从…

covariance matrix r语言_时间序列分析|ARIMAX模型分步骤详解和R中实践

这是关于时间序列的第N篇文章,本文将介绍ARIMAX模型,简单来说就是在ARIMA的基础上增加一个外生变量。ARIMAX和ARIMA相比在理论上没有太多新的内容,所以本文直接介绍在R里怎么一步一步跑ARIMAX。在阅读这篇文章前,需要对ARIMA有一定…

linux系统编程之文件与I/O(六):fcntl 函数与文件锁

2013-05-14 11:26 8290人阅读 评论(2) 收藏 举报分类:linux系统编程(19) 版权声明:本文为博主原创文章,未经博主允许不得转载。 一、fcntl函数 功能:操纵文件描述符,改变已打开的文件的属性 int…

bandizip最后一个无广告版本_如果非要选择一款压缩软件的话——Bandizip

全世界只有不到0.00~1 % 的人关注了我们得到你的关注是小帮的幸运压缩解压软件是电脑一个必备软甲,前面的文章介绍了一款开源小巧无广告的压缩解压软件windows工具软件选择之压缩软件——7-Zip,如果有人用不惯的话可以试试今天的这款。Bandizip 是一款来…

[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现

新人刚开始学习ASP.NET MVC,若有不足之处希望能得到您的指点,不胜感激! 先来一张项目的层级结构图: Model:模型层,主要是各种类型、枚举以及ORM框架,框架完成数据库和实体类的映射。项目中选用了微软的开源…

mybatisplus代码生成器_想做时间管理大师?你可以试试Mybatis Plus代码生成器

1. 前言对于写Crud的老司机来说时间非常宝贵,一些样板代码写不但费时费力,而且枯燥无味。经常有小伙伴问我,胖哥你怎么天天那么有时间去搞新东西,透露一下秘诀呗。好吧,今天就把Mybatis-plus的代码生成器分享出来&…

c++ websocket客户端_websocket使用

websocket使用一、介绍在项目开发过程中,很多时候,我们不可避免的需要实现的一个功能: 服务端实时发送信息给客户端。比如实时公告、实时订单通知、实时报警推送等等,登录后的客户端需要知道与它相关的实时信息,以便进…

在cordova中使用HTML5的多文件上传

2019独角兽企业重金招聘Python工程师标准>>> 我们先看看linkface给开放的接口: 字段类型必需描述api_idstring是API 账户api_secretstring是API 密钥selfie_filefile见下方注释需上传的图片文件 1,上传本地图片进行检测时选取此参数selfie_ur…

linux常用命令和配置

2019独角兽企业重金招聘Python工程师标准>>> 启动php: /etc/init.d/php-fpm restart 查看PHP运行目录: which php /usr/bin/php 查看php-fpm进程数: ps aux | grep -c php-fpm 查看运行内存 /usr/bin/php -i|grep mem iptables如…

centos7时间同步_centos 8.x系统配置chrony时间同步服务

centos 8.x系统配置chrony时间同步服务CentOS 7.x默认使用的时间同步服务为ntp服务,但是CentOS 8开始在官方的仓库中移除了ntp软件,换成默认的chrony进行时间同步的服务,chrony既可以作为客户端向其他时间服务器发送时间同步请求,…

ICWAI和ICWA的完整形式是什么?

ICWAI / ICWA:印度成本与工程会计师协会/印度儿童福利法 (ICWAI / ICWA: Institute of Cost and Works Accountants of India / Indian Child Welfare Act) 1)ICWAI:印度成本与工程会计师协会 (1) ICWAI: Institute of Cost and Works Accountants of In…

crontab 日志_liunx 中定时清理过期日志文件

问题描述经常遇到日志文件过多,占用大量磁盘空间,需要定期删除过期日志。问题涉及方面删除过期日志的脚本。定时任务删除任务脚本先查询到过期的日志文件,然后删除。语法find path -option [ -print ] [ -exec -ok command ] …

将搜索二叉树转换为链表_将给定的二叉树转换为双链表(DLL)

将搜索二叉树转换为链表Given a Binary tree and we have to convert it to a Doubly Linked List (DLL). 给定二叉树,我们必须将其转换为双链表(DLL)。 Algorithm: 算法: To solve the problem we can follow this algorithm: 为了解决这个问题&#…

cuda编程_CUDA刷新器:CUDA编程模型

CUDA刷新器:CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA,CUDA刷新器,并行编程 这是CUDA更新系列的第四篇文章,它的目标是刷新CUDA中的关键概念、工具和初级或中级开发人员的优化。 CUDA编程模型提供了GPU体系结…

java 逻辑表达式 布尔_使用基本逻辑门实现布尔表达式

java 逻辑表达式 布尔将布尔表达式转换为逻辑电路 (Converting Boolean Expression to Logic Circuit) The simplest way to convert a Boolean expression into a logical circuit is to follow the reverse approach in which we start from the output of the Boolean expre…

python自然语言处理书籍_精通Python自然语言处理pdf

自然语言处理(NLP)是有关计算语言学与人工智能的研究领域之一。NLP主要关注人机交互,它提供了计算机和人类之间的无缝交互,使得计算机在机器学习的帮助下理解人类语言。 本书详细介绍如何使用Python执行各种自然语言处理&#xff…

通达oa 2013 php解密,通达OA漏洞学习 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...

说明通达OA漏洞在去年上半年已爆出,这不趁着周末没事做,将源码下载下来进行复现学习。文件包含测试文件包含检测,payload1:ip/ispirit/interface/gateway.php?json{"url":"/general/../../mysql5/my.ini"}利用文件包含访…

公众号 -「前端攻略 开光篇」

作为一枚程序员,每件重要项目的开始都忍不住使用"Hello World"。 这个公众号是不是来晚了?如果你有这个疑问,那么我想说:对于写作和思考,任何时候都不晚。我用四个简单的自问自答,来讲讲这个前端…