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

merge需要依据共同的某一列或者某一行来进行合并

left:  左表(DataFrame)

right:右表(DataFrame)

how:连接方式

  left:   仅保留左表的键

  right: 仅保留右表的键

  outer:两表的键取并集

  inner:两表的键取交集

on:用来对齐的那一列的名字,用到这个参数的时候一定要保证左表和右表用来对齐的那一列都有相同的列名.

left_on  :左侧DataFarme中用作连接键的列.
right_on:右侧DataFarme中用作连接键的列.

left_index :  将左侧的行索引用作其连接键 .
right_index :将右侧的行索引用作其连接键 .

sort :根据连接键对合并后的数据进行排序,默认为True.有时在处理大数据集时,禁用该选项可获得更好的性能.

suffixes :字符串值元组,用于追加到重叠列名的末尾,默认为(‘_x’,‘_y’).例如,左右两个DataFrame对象都有‘data’,则结果中就会出现‘data_x’,‘data_y’.

copy :设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中.

import pandas as pd

#左右字段相同时采用on
df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]})
df2=pd.DataFrame({'name':['kate','herz','sally'],'score':[70,60,90]})
pd.merge(df1,df2,on=["name"],how="outer") #当左右连接字段不相同时,使用left_on,right_on
df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]})
df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]})
pd.merge(df1,df2,left_on=["name"],right_on=["call_name"],how="outer") #outer 外连接取并集,并用nan填充” #合并后删除重复的列
df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]})
df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]}) pd.merge(df1,df2,left_on='name',right_on='call_name').drop('name',axis=1) #按照索引位置合并
df1=pd.DataFrame({'name':['kate','herz','catherine','sally'],'age':[25,28,39,35]}).set_index("name")
df2=pd.DataFrame({'call_name':['kate','herz','sally'],'score':[70,60,90]}).set_index("call_name")
pd.merge(df1,df2,how="outer",left_index=True,right_index=True)

  

pandas的merge函数的更多相关文章

  1. python重要的第三方库pandas模块常用函数解析之DataFrame

    pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...

  2. pandas DataFrame apply()函数(1)

    之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方法自定义函数 pandas DataFrame 的 app ...

  3. pandas DataFrame apply()函数(2)

    上一篇pandas DataFrame apply()函数(1)说了如何通过apply函数对DataFrame进行转换,得到一个新的DataFrame. 这篇介绍DataFrame apply()函数 ...

  4. merge函数:R语言,根据相同的列或ID合并不同的文件

    一般Excel就能实现根据相同的列或ID合并不同的文件,但对于大文件来说,比如几十个G的数据量,用Excel处理,不仅耗时,而且还会使电脑崩溃.R语言的优势就体现在这里了,处理大文件相当快. firs ...

  5. pandas DataFrame.shift()函数

    pandas DataFrame.shift()函数可以把数据移动指定的位数 period参数指定移动的步幅,可以为正为负.axis指定移动的轴,1为行,0为列. eg: 有这样一个DataFrame ...

  6. Js $.merge() 函数(合并两个数组内容到第一个数组)

    定义和用法 $.merge() 函数用于合并两个数组内容到第一个数组. 语法 $.merge( first, second )   参数 描述 first Array类型 第一个用于合并的数组,合并后 ...

  7. SAS学习笔记7 合并语句(set、merge函数)

    set函数:纵向合并数据集 set语句进行纵向合并.set语句的作用是将若干个数据集依次纵向连接,并存放到data语句建立的数据集中.若set后面只有一个数据集,此时相当于复制的作用 注:data语句 ...

  8. split()函数+merge()函数

    在图像处理时,我们接触到的彩色以RGB居多,为了分析图像在某一通道上的特性,需要将图像的颜色通道进行分离,或者是在对某一颜色通道处理后重新进行融合.opencv提供了split()函数来进行颜色通道的 ...

  9. pandas模块常用函数解析之Series(详解)

    pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...

随机推荐

  1. Nexus私服的安装与配置

    Nexus的安装与配置 仅以此文,献给陷入懒癌晚期的小伙伴们. 本文基于nexus 3.xx .0. What?Why?When?Who?Where? Sonatype Nexus是一款maven仓库 ...

  2. iOS-----使用CFNetwork实现TCP协议的通信

    使用CFNetwork实现TCP协议的通信 TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个通信接口,从而在通信的两端之间形成网络虚拟链路.一旦建立了虚拟的网络链路,两端的程序就可以 ...

  3. eclipse ubuntu error

    eclipse cdt :symbol cout can not be solved Preferences -> C/C++ -> Indexer -> Use active bu ...

  4. xdoj 1044---炸红花 (话说 小时候经常玩这个被虐。。。。qwq)

    // 我真的好笨 只会枚举 话说那个ac的370b到底是怎么做的 /(ㄒoㄒ)/~~ #include <iostream> #include <algorithm> usin ...

  5. PAT天梯:L1-019. 谁先倒

    L1-019. 谁先倒 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳 ...

  6. Alternative Thinking 找规律

    Kevin has just recevied his disappointing results on the USA Identification of Cows Olympiad (USAICO ...

  7. 实习第一周第一天:接口 extends是继承类,implement是实现接口,原接口里面的方法填充,方法名也是不变,重写override是父类的方法名不变,把方法体给改了

    一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...

  8. gitlab操作

    一.初始设置 在某一个具体的project下: 1.gitlab中删除一个工程Setting-->General-->Advanced settings-->RemoveProjec ...

  9. streamsets rest api 转换 graphql

    原理很简单,就是使用swagger api 生成schema 然后代理请求处理api 调用 参考项目 https://github.com/rongfengliang/streamsets-graph ...

  10. vertx.io 与nodejs 一个简单的性能比较

    vertx.io 与node 都是可以进行js运行的一个引擎,但是vertx 支持的语言相对于node 多,可以查看官网.今天下网上查询相关的信息 时来了解到vertx.io 性能比node 好,于是 ...