数据合并:由于数据可能是不同的格式,且来自不同的数据源,为了方便之后的处理与加工,需要将不同的数据转换成一个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. SQL语法LPAD和RPAD

    一.[LPAD左侧补齐] LPAD(str,len,padstr) LPAD(str,len,padstr) 返回字符串 str, 其左边由字符串padstr 填补到len 字符长度.假如str 的长 ...

  2. IdentityServer4 4.x版本 配置Scope的正确姿势

    前言 IdentityServer4 是为ASP.NET Core系列量身打造的一款基于 OpenID Connect 和 OAuth 2.0 认证的框架 IdentityServer4官方文档:ht ...

  3. Java工具类之:包装类

    Java工具类--包装类 我们都知道,JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类,他们其实都可以理解成工具类,比如我们常见的集合类,日期相关的类,数学相关的类等等,有了这些工 ...

  4. dva的简介

    dva的定义 dva 是基于现有应用架构 (redux + react-router + redux-saga 等)的一层轻量封装; redux 他是react当中的仓库,如果熟悉vue的话,他的功能 ...

  5. Python比较操作符、变量赋值、对象拷贝

    Python比较操作符.变量赋值.对象拷贝 目录 Python比较操作符.变量赋值.对象拷贝 1. 比较操作符 == 和 is 1.1 区别 1.2 实例 2. 变量及其赋值 2.1 概念和逻辑关系 ...

  6. CRLF injection 简单总结

    CRLF injection 简单总结 简介 CRLF是"回车 + 换行"(\r\n)的简称,即我们都知道在HTTP协议中,HTTP Header与HTTP Body是用两个CRL ...

  7. 数据库04 /多表查询、pymysql模块

    数据库04 /多表查询.pymysql模块 目录 数据库04 /多表查询.pymysql模块 1. 笛卡尔积 2. 连表查询 2.1 inner join 内连接 2.2 left join 左连接 ...

  8. Unity-内存

    editor 和runtime的内存管理分开的 unity检测不到native内存容量 如c++,lua 一个asset一个ab的问题在于 每个asset都有对应的文件头,并不划算 IL2CPP抛弃了 ...

  9. C# Dictionary的底层实现解析

    引用: https://www.cnblogs.com/InCerry/p/10325290.html 字典原理分析: 1.用数组存元素,元素的结构体存hashCode.next.key.value. ...

  10. 09-Python异常

    一.简介 在实际的工作过程中,我们会遇到各种问题,比如文件不存在,代码运行不符合某些特定逻辑等,程序在运行时,遇到这些问题便会发生异常.英文是Exception. a = float(input('请 ...