9-Pandas之数据合并与轴向连接(pd.concat()的详解)
数据合并:由于数据可能是不同的格式,且来自不同的数据源,为了方便之后的处理与加工,需要将不同的数据转换成一个DataFrame。
Numpy中的concatenate()、vstack()、hstack()可对数组进行拼接,可参考学习。
Pandas提供了pd.concat()、pd.merge()、join()、combine_first()等函数对Pandas数据对象进行合并。
在本节中,仅对pd.concat()进行详细讲解。
参数 | 说明 |
objs | 需连接的对象的列表 |
axis | 轴向连接所沿的轴,默认为0 |
ignore_index | 默认False,当为True时表示不适用连接轴上的索引值,生成的轴标记为0...n-1 |
keys | 序列,默认为None。构建层次化索引,且该索引位于最外层 |
join | 值为'inner'或'outer'(默认'outer')。指定处理其他轴上的索引(并集或交集) |
join_axes | 指定其他轴上的索引,不执行并集或交集运算 |
(1)默认连接两个DataFrame对象(默认axis = 0,即上下连接)
- >>> import pandas as pd
- >>> df1 = pd.DataFrame({'姓名':['钱某','段某'],'年龄':[20,24]},index=[2,3])
- >>> df2 = pd.DataFrame({'姓名':['钱某','段某'],'年龄':[20,24]},index=[2,3])
- >>> df1
- 姓名 年龄
- 2 钱某 20
- 3 段某 24
- >>> df2
- 姓名 年龄
- 2 钱某 20
- 3 段某 24
- #连接两个对象
- >>> pd.concat([df1,df2])
- 姓名 年龄
- 2 钱某 20
- 3 段某 24
- 2 钱某 20
- 3 段某 24
(2)左右连接两个DataFrame对象
- >>> df1 = pd.DataFrame({'年龄':[22,26],'籍贯':['北京','河北']},index=['张某','李某'])
- >>> df2 = pd.DataFrame({'身高':[175,180],'体重':[70,85]},index=['张某','李某'])
- >>> df1
- 年龄 籍贯
- 张某 22 北京
- 李某 26 河北
- >>> df2
- 身高 体重
- 张某 175 70
- 李某 180 85
- #左右连接
- >>> pd.concat([df1,df2],axis=1)
- 年龄 籍贯 身高 体重
- 张某 22 北京 175 70
- 李某 26 河北 180 85
(3)验证ignore_index参数,即将连接后的列名转化为0...n-1
- >>> pd.concat([df1,df2],axis=1,ignore_index=True)
- 0 1 2 3
- 张某 22 北京 175 70
- 李某 26 河北 180 85
(4)验证keys参数,即构建层次化索引
- >>> pd.concat([df1,df2],axis=1,keys=['df1','df2'])
- df1 df2
- 年龄 籍贯 身高 体重
- 张某 22 北京 175 70
- 李某 26 河北 180 85
(5)验证join参数,默认 join = 'outer' ,取并集,不会造成信息的缺失
- >>> df3 = pd.DataFrame({'身高':[175,183],'体重':[70,87]},index=['张某','钱某'])
- >>> df3
- 身高 体重
- 张某 175 70
- 钱某 183 87
- #取并集
- >>> pd.concat([df1,df3],axis=1)
- 年龄 籍贯 身高 体重
- 张某 22.0 北京 175.0 70.0
- 李某 26.0 河北 NaN NaN
- 钱某 NaN NaN 183.0 87.0
- #取交集
- >>> pd.concat([df1,df3],axis=1,join='inner')
- 年龄 籍贯 身高 体重
- 张某 22 北京 175 70
(6)验证join_axes参数,若只想重用原始DataFrame中的索引,则项 join_axes 传入一个索引对象列表
- >>> pd.concat([df1,df3],axis=1)
- 年龄 籍贯 身高 体重
- 张某 22.0 北京 175.0 70.0
- 李某 26.0 河北 NaN NaN
- 钱某 NaN NaN 183.0 87.0
- >>> pd.concat([df1,df3],axis=1,join_axes=[df1.index])
- 年龄 籍贯 身高 体重
- 张某 22 北京 175.0 70.0
- 李某 26 河北 NaN NaN
9-Pandas之数据合并与轴向连接(pd.concat()的详解)的更多相关文章
- 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)
这个很简单,在集群机器里,选择就是了,本来自带就有Impala的. 扩展博客 给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)
- 给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)
不多说,直接上干货! Impala和Hive的关系(详解) 扩展博客 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解) 参考 horton ...
- 利用Python进行数据分析(12) pandas基础: 数据合并
pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...
- 数据分析入门——pandas之数据合并
主要分为:级联:pd.concat.pd.append 合并:pd.merge 一.numpy级联的回顾 详细参考numpy章节 https://www.cnblogs.com/jiangbei/p/ ...
- pandas 之 数据合并
import numpy as np import pandas as pd Data contained in pandas objects can be combined together in ...
- Echarts数据可视化grid直角坐标系(xAxis、yAxis)详解:
mytextStyle={ color:"#333", //文字颜色 fontStyle:"normal", //italic斜体 oblique倾斜 font ...
- 【大数据】Linux下安装Hadoop(2.7.1)详解及WordCount运行
一.引言 在完成了Storm的环境配置之后,想着鼓捣一下Hadoop的安装,网上面的教程好多,但是没有一个特别切合的,所以在安装的过程中还是遇到了很多的麻烦,并且最后不断的查阅资料,终于解决了问题,感 ...
- Pandas 时间序列数据绘制X轴主要刻度和次要刻度
先上效果图吧(图中Tue表示周二): Pandas和matplotlib.dates都是使用matplotlib.units来定位刻度. matplotlib.dates可以方便的手动设置刻度,同时p ...
- Linq 数据合并,比较,连接,交叉 维恩图工具
Except 返回包含两个不同之处的linq结果集 Intersect 返回两个容器中共同的数据项 Union 返回所有成员,相同的成员出现多次,将只返回一个 Concat 返回所有数据项
随机推荐
- visual studio 项目中使用EF创建的数据库,后续更新数据库操作(生产已经部署,不能删除数据库重新创建)
情景:SharePoint项目(其他类型的项目道理也一样),数据库是用EF(版本:6.0.0.0)创建的,生产环境已经使用,所以后续修改数据库,只能通过更新来实现. 下面是具体的操作方式: 1.vis ...
- 用.NET做B/S结构的系统,您是用几种结构来开发,每一层之间的关系以及为什么要这样分层?
表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得. 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理. 数据访问层(DAL):直 ...
- Netty源码学习系列之5-NioEventLoop的run方法
前言 NioEventLoop的run方法,是netty中最核心的方法,没有之一.在该方法中,完成了对已注册的channel上来自底层操作系统的socket事件的处理(在服务端时事件包括客户端 ...
- 通过手写服务器的方式,立体学习Http
前言 Http我们都已经耳熟能详了,而关于Http学习的文章网上有很多,各个知识点的讲解也可说是深入浅出.然而,学习过后,我们对Http还是一知半解.问题出在了哪? Http是一个客户机与服务器之间的 ...
- LoadLibraryA与GetProcAddress介绍
0x00 函数原型 HMODULE LoadLibraryA( LPCTSTR lpLibFileName//模块的的的名字 ) FARPROC GetProcAddress( HMODULE ...
- CCNA-Part5 - 传输层 ,TCP 为什么是三次握手?
传输层 传输层主要的作用就是建立端到端的连接.比如电脑的微信的通信,就需要跨越多个网络设备(交换机和录取)再和微信的服务器建立连接. 传输层需要具有以下的特点: 会话的多复用:如电脑上开启的多个应用, ...
- day64 django模型层
目录 一.单表操作(增删改) 二.必知必会13个方法 三.查看内部的sql语句的方法 四.神奇的双下划线查询 五.一对多外键的增删改查 六.多对多外键的增删改查 七.正反向查询概念 八.多表查询 1 ...
- day39 进程
目录 一.进程对象的其他方法 二.僵尸进程与孤儿进程(了解) 1 僵尸进程 2 孤儿进程 三.守护进程 四.互斥锁 五.进程间通信 六.IPC机制 七.生产者消费者模型 八.线程理论 一.进程对象的其 ...
- js获取div对象几何信息
/** * @description 获取对象信息: * bottom: 208 * height: 200 (老版本IE不兼容) * width: 200 (老版本IE不兼容) * left: 8 ...
- 数据源管理 | 搜索引擎框架,ElasticSearch集群模式
本文源码:GitHub·点这里 || GitEE·点这里 一.集群环境搭建 1.环境概览 ES版本6.3.2,集群名称esmaster,虚拟机centos7. 服务群 角色划分 说明 en-maste ...