数据合并:由于数据可能是不同的格式,且来自不同的数据源,为了方便之后的处理与加工,需要将不同的数据转换成一个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. css伪选择器使用总结——css中关于伪类和伪元素的知识总汇

    CSS 伪类用于向某些选择器添加特殊的效果,而CSS引入伪类和伪元素的概念是为了实现基于文档树之外的信息的格式化.这里讲总结关于css伪类和伪元素的相关使用 伪元素 :before/:before 在 ...

  2. 蓝桥杯大学B组省赛2020模拟赛(一)题解与总结

    题目链接:https://www.jisuanke.com/contest/6516 A:题目: 我们称一个数是质数,而且数位中出现了 5 的数字是有趣的. 例如 5, 59, 457.求1到1000 ...

  3. 发布.net core Web到CentOS7

    1.发布一个.net core(只安装了.Net Core运行时,而没有安装ASP.NET Core运行时,需要添加以下节点再发布).  <PublishWithAspNetCoreTarget ...

  4. keepalived 热备

    概述 keepalived高可用集群      keepalived最初是为了LVS的,因为LVS无法进行自动检测服务器的节点状态(可以自动部署LVS)     keeplived后来加入VRRP给功 ...

  5. 阿里云centos7服务器nginx配置及常见问题解答

    前言: 本文参考了jackyzm的博客:https://www.cnblogs.com/jackyzm/p/9600738.html,进行了内容的更新,并请注意这里适用的版本是centos7的版本.并 ...

  6. selenium:selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

    可用链接: 1.http://blog.csdn.net/heatdeath/article/details/71136174 2.https://www.cnblogs.com/yousuosiys ...

  7. SpringBoot学习笔记(十七:异步调用)

    @ 目录 1.@EnableAsync 2.@Async 2.1.无返回值的异步方法 2.1.有返回值的异步方法 3. Executor 3.1.方法级别重写Executor 3.2.应用级别重写Ex ...

  8. 太实用了!自己动手写软件——SSH、FTP和SQL server的密码破解

    我们的密码破解工具一共分为如下六个部分,前面四个部分我们都有在之前的文章中介绍过了 用户图形界面——GUI编程 密码字典获取——Excel文件读取 数据库类——MySQL.Oracle和SQL ser ...

  9. Qt-数据库操作SQLite

    1  简介 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=88 说明:本文对在Qt中操作SQLite做简要说明. SQLite:SQLite 是 ...

  10. InceptionV4

    目录 1. inception v4 2. Inception-resnet-v1 & Inception-resnet-v2 2.1 Inception-resnet-v1的组成模块 2.2 ...