数据合并:由于数据可能是不同的格式,且来自不同的数据源,为了方便之后的处理与加工,需要将不同的数据转换成一个DataFrame。

  Numpy中的concatenate()、vstack()、hstack()可对数组进行拼接,可参考学习。

  Pandas提供了pd.concat()、pd.merge()、join()、combine_first()等函数对Pandas数据对象进行合并。

在本节中,仅对pd.concat()进行详细讲解。

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()的详解)的更多相关文章

  1. 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)

    这个很简单,在集群机器里,选择就是了,本来自带就有Impala的. 扩展博客 给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)

  2. 给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)

    不多说,直接上干货! Impala和Hive的关系(详解) 扩展博客 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解) 参考 horton ...

  3. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

  4. 数据分析入门——pandas之数据合并

    主要分为:级联:pd.concat.pd.append 合并:pd.merge 一.numpy级联的回顾 详细参考numpy章节 https://www.cnblogs.com/jiangbei/p/ ...

  5. pandas 之 数据合并

    import numpy as np import pandas as pd Data contained in pandas objects can be combined together in ...

  6. Echarts数据可视化grid直角坐标系(xAxis、yAxis)详解:

    mytextStyle={ color:"#333", //文字颜色 fontStyle:"normal", //italic斜体 oblique倾斜 font ...

  7. 【大数据】Linux下安装Hadoop(2.7.1)详解及WordCount运行

    一.引言 在完成了Storm的环境配置之后,想着鼓捣一下Hadoop的安装,网上面的教程好多,但是没有一个特别切合的,所以在安装的过程中还是遇到了很多的麻烦,并且最后不断的查阅资料,终于解决了问题,感 ...

  8. Pandas 时间序列数据绘制X轴主要刻度和次要刻度

    先上效果图吧(图中Tue表示周二): Pandas和matplotlib.dates都是使用matplotlib.units来定位刻度. matplotlib.dates可以方便的手动设置刻度,同时p ...

  9. Linq 数据合并,比较,连接,交叉 维恩图工具

    Except 返回包含两个不同之处的linq结果集 Intersect 返回两个容器中共同的数据项 Union 返回所有成员,相同的成员出现多次,将只返回一个 Concat 返回所有数据项

随机推荐

  1. debian10 安装 详解

    准备 下载debian 下载页面,有3个iso,选择第一个,其他两个软件包,我们不需要. 制作启动盘 debian官方提供了一个工具,可以轻松制作启动盘,也可以用opensuse官方提供的一个工具ru ...

  2. 你还在担心rpc接口超时吗

    在使用dubbo时,通常会遇到timeout这个属性,timeout属性的作用是:给某个服务调用设置超时时间,如果服务在设置的时间内未返回结果,则会抛出调用超时异常:TimeoutException, ...

  3. CentOS 7 Docker安装部署Go Web

    Docker 是一种容器技术,它部署简单,能很好的进行服务隔离,生成镜像,Push到镜像仓库,其他机器一键拉取部署. Docker分为社区版CE和企业版EE,社区版是免费提供给个人和小型团队使用,企业 ...

  4. 「疫期集训day0」启程

    看了看几乎所有学长都是写的博客,所以写的博客 由于是第一回集训,考得都是老题(虽然有些还不会) 感受1:我调试好蒻呃,调试巨蒻,T1lis模板5分切,结果T2T3T4调了将近了两个小时,先是T2路径输 ...

  5. [开源][示例更新]eCharts配置简化包OptionCreator[typescript版]

    前言 eCharts作为国内优秀的开源图表工具,功能强大,但是使用中也存在一定的问题. 文档更新较慢,文档说明不详细. 前端使用的弱类型语言,数据结构在灵活的同时,也容易造成一些问题.例如某些属性到底 ...

  6. 数据可视化之powerBI技巧(十四)采悟:PowerBI中自制中文单位万和亿

    使用PowerBI的时候,一个很不爽之处就是数据单位的设置,只能用千.百万等英美的习惯来显示,而没有我们中文所习惯的万亿等单位,虽然要求添加"万"的呼声很高,但迟迟未见到改进动作, ...

  7. Odoo13之在tree视图左上角添加自定义按钮

    前言 首先展示效果图,如下图所示,在资产设备模块tree视图的左上角添加了一个同步资产的按钮. 要完成按钮的添加,分为四步,分别是: 1.编写xml文件,找到相关模型tree视图,并给模型tree视图 ...

  8. POJ 1057 File Mapping 最详细的解题报告

    题目来源:POJ 1057 File Mapping 题目大意:像我的电脑那样显示文件夹和文件信息,其中在同一级目录内,文件夹排在文件的前面并且文件夹的顺序不变,同一级目录中文件按字母序排列.文件以‘ ...

  9. Python 爬取异步加载的数据

    在我们的工作中,可能会遇到这样的情况:我们需要爬取的数据是通过ajax异步加载的,这样的话通过requests得到的只是一个静态页面,而我们需要的是ajax动态加载的数据! 那我们应该怎么办呢??? ...

  10. day2 python六大标准数据类型简介

    1.number( int , float , bool , complex ) # int 整型 intvar = 2020 print(type(intvar),id(intvar)) ​ # f ...