连接对象(Concatenating)

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False,copy=True)

join有两个参数inner(内连)和outer(外连)
ignore_index:是否忽略索引,默认不忽略,此时会按照索引连接。
join_axes:使用哪个数据框的索引
keys:复合索引

横向连接

In [1]: df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],...:                     'B': ['B0', 'B1', 'B2', 'B3'],...:                     'C': ['C0', 'C1', 'C2', 'C3'],...:                     'D': ['D0', 'D1', 'D2', 'D3']},...:                     index=[0, 1, 2, 3])...:
In [8]: df4 = pd.DataFrame({'B': ['B2', 'B3', 'B6', 'B7'],...:                  'D': ['D2', 'D3', 'D6', 'D7'],...:                  'F': ['F2', 'F3', 'F6', 'F7']},...:                 index=[2, 3, 6, 7])...:
result = pd.concat([df1, df4], axis=1, join_axes=[df1.index])

纵向连接

In [15]: result = pd.concat([df1, df4], ignore_index=True)

append函数更加有效率

数据库形式的连接(joining/merging)

这个语法是专门为那些使用SQL数据的人群设置的

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, right_index=False, sort=True,suffixes=('_x', '_y'), copy=True, indicator=False)

left:左数据表
right:右数据表
on:以哪一列为标准做联表,如果没有输入参数,则会以共有的索引作为依据
left_on:以左边的数据框作为join key
right_on:以右边的数据框作为join key
left_index:以左边的索引作为join key
right_index:以右边的索引作为join key
how:left right out inner,默认为inner
sort:通过join key对结果进行排序
suffixes:
copy:
indicator:

merge同时也是一个对象方法,对象默认是左联表。而join实例方法则是默认以索引做为连接方法。

In [38]: left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],....:                      'A': ['A0', 'A1', 'A2', 'A3'],....:                      'B': ['B0', 'B1', 'B2', 'B3']})....: In [39]: right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],....:                       'C': ['C0', 'C1', 'C2', 'C3'],....:                       'D': ['D0', 'D1', 'D2', 'D3']})....: In [40]: result = pd.merge(left, right, on='key')


使用indicator可以监视连接的状态

In [48]: df1 = pd.DataFrame({'col1': [0, 1], 'col_left':['a', 'b']})In [49]: df2 = pd.DataFrame({'col1': [1, 2, 2],'col_right':[2, 2, 2]})In [50]: pd.merge(df1, df2, on='col1', how='outer', indicator=True)
Out[50]: col1 col_left  col_right      _merge
0     0        a        NaN   left_only
1     1        b        2.0        both
2     2      NaN        2.0  right_only
3     2      NaN        2.0  right_only

Pandas 表连接(Merge,join,concatenate)相关推荐

  1. python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标、时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析

    python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标.时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析 目录

  2. (四)sql多表连接查询join on的用法

    (四)sql多表连接查询join on的用法总结 需要用到的表信息如下: EMP职员表: dept部门信息表和salgrade薪资等级表: 1. 多表连接 没有任何条件限制,即笛卡儿积,产生的记录数目 ...

  3. Linq 多表连接查询join

    在查询语言中,通常需要使用联接操作.在 LINQ 中,可以通过 join 子句实现联接操作.join 子句可以将来自不同源序列,并且在对象模型中没有直接关系(数据库表之间没有关系)的元素相关联,唯一的 ...

  4. oracle强制执行计划,OBA技能2-Oracle执行计划顺序表连接

    小仙我在学习索引执行行为的时候,有个疑惑?那就是索引是找到一个值就马上回表,然后再找下一个值,再回表. 比如索引唯一扫描,索引范围扫描,索引全扫描,索引快速扫描.好像都是要回表.尤其是范围,不范围完后 ...

  5. mysql和sql视图连接_SQL视图和多表连接

    本篇博客关注的焦点是视图的使用以及视图和多表连接的配合.以便可以了解视图,以及更好的使用视图. 首先,还是要说明一下视图的定义:视图是基于SQL语句的结果集的可视化虚拟表,换句话说视图就是SQL查询结 ...

  6. 数据库学习笔记6--MySQL多表查询之外键、表连接、子查询、索引

    本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复 ...

  7. oracle表连接查询逗号隔开_Oracle多表连接查询

    连接:将一张表中的行按照某种条件和另一张表中的行连接起来形成一个新行的的过程. 根据连接查询返回的结果,分为3类: 内连接(inner join) 外连接(outer join) 交叉连接(cross ...

  8. [Mysql] 多表连接查询

    在之前的学习当中,我们查询使用的都是一张表,而在实际的数据分析业务中,经常会使用多张表.将多张表连接起来就是多表连接(从一个表扩展为两个表,也可以更多个表) 多表连接查询 当查询结果的列来源于多张表时 ...

  9. 表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN

    表连接方式及使用场合 NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择.nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查 ...

最新文章

  1. 异步调用WCF的方法需要小心的地方
  2. 【数字信号处理】基本序列傅里叶变换总结 ( 单位脉冲序列 δ(n) | {1} 序列 | e^jωn 序列 | cosωn 序列 | sinωn 序列 | a^nu(n) | 矩形窗函数 ) ★★★
  3. 读书笔记_CLR.via.c#第五章_基元类型_引用类型_值类型
  4. HTTP系列之:HTTP缓存
  5. 如何处理SAP OData错误消息: Invalid parametertype used at function XXXX
  6. linux内核启动后门,Linux内核模块入门之简单内核后门
  7. python rbf神经网络_RBF神经网络是什么?
  8. 企业信息化政务信息化浙里办
  9. Android连接mumu模拟器
  10. 超级压缩,将3D压缩成一种图片
  11. 企业单位申请代码签名证书方法
  12. Excel获取Sheet名称公式
  13. Resources Root目录和Sources Root目录的区别
  14. 保险项目核保的规则和所负责业务的逻辑
  15. 安卓机 input file图片上传无反应解决方案
  16. 基于小波变换的脉搏信号滤波matlab仿真
  17. 主线程 如何控制 子线程
  18. 详解什么是BFC和BFC能解决什么问题
  19. 计算机网络第一二章多选题,计算机网络概论第一章练习题
  20. 超级人工智能称霸德扑的秘密:Libratus击败顶级专业人士

热门文章

  1. Python+OpenGL使用Cohen-Sutherland算法实现直线裁剪
  2. 详解Python序列解包(3)
  3. 搜索python题目的软件_Python编程快速上手——正则表达式查找功能案例分析
  4. 下划线间隔数字 排序_面试必备:经典算法动画解析之希尔排序
  5. java 值传递 引用传递_Java小白进阶之值传递-引用传递
  6. linux pid t 头文件_pid和tid及线程调度
  7. cupsd进程_linux pstree命令显示正在运行的进程的进程树状图
  8. 英语语音中的调核例子_英语歌曲在英语教学中扮演的重要角色
  9. 鸿蒙眼镜怎么样,Babiators儿童太阳镜怎么样 Babiators儿童太阳镜测评
  10. 任务驱动在计算机教学中的应用,浅谈任务驱动法在《计算机应用基础》教学中的应用_优秀论文...