精华内容
下载资源
问答
  • 昨天,我在python利用pandas对两张excel表合并(二)一文中对两张表按列merge时on的用法。今天分享一下,merge传参时,另一个参数how的方法。在学完how的用法之后,对两张表的合并学习基本上就结束了。 1、如下图所...

    昨天,我在python利用pandas对两张excel表合并(二)一文中对两张表按列merge时on的用法。今天分享一下,merge传参时,另一个参数how的方法。在学完how的用法之后,对两张表的合并学习基本上就结束了。
    1、如下图所示:
    在这里插入图片描述
    左表中name分别是:bob, millor, jiken。右表中name有bob, millor, lucy。左表有jiken而没有lucy, 右表有lucy而没有jiken。
    how参数有4个值{‘inner’, ‘outer’, ‘right’,‘left’}听起来可能会让人觉得繁琐,看完下面的例子用法很快就会明白。
    2、代码:

    # 当how为inner时,同时,how的默认值也是inner
    >>> import pandas as pd
    >>> df1 = pd.read_excel(r'D:/myExcel/1.xlsx', 'Sheet1')
    >>> df2 = pd.read_excel(r'D:/myExcel/2.xlsx', 'Sheet1')
        # df1就是上述左表,df2就是上图中的右表
    >>> df = pd.merge(df1, df2, how='inner', on=['name'])
    	# 有结果可知,当how为inner时,做左右表连接实际取的是name的交集,即两表
    	#name中的共同部分
    >>> df
         name  math  Chinese
    0     bob    23       21
    1  millor    32       19
    
    # 当how为outer时,取的是name的并集,无值的补为NAN,空值的意思
    >>> df = pd.merge(df1, df2, how='outer', on=['name'])
    >>> df
         name  math  Chinese
    0     bob  23.0     21.0
    1  millor  32.0     19.0
    2   jiken  45.0      NaN
    3    lucy   NaN     86.0
    
    # 当how为left时,即以左表的name的值为标准,左表的name必须保留,右表的name中有值
    # 而左表没有则删除
    >>> df = pd.merge(df1, df2, how='left', on=['name'])
       # 结果有jiken却没有lucy
    >>> df
         name  math  Chinese
    0     bob    23     21.0
    1  millor    32     19.0
    2   jiken    45      NaN
    
    # 当how为right时,保留右表而不保留左表中的不同部分 
    >>> df = pd.merge(df1, df2, how='right', on=['name'])
     # 结果保留了lucy却删除了jiken
    >>> df
         name  math  Chinese
    0     bob  23.0       21
    1  millor  32.0       19
    2    lucy   NaN       86
    

    通过对how的用法解释,两表之间的连接已经非常清楚了。如果想有更深入的了解,可以下载pandas的官方文档。或者在我的公众号:python小工具。回复python获取。虽然是英文的,但并不难理解,建议下载。
    哈哈,以上就是对两表连接的介绍。明天我将开始介绍多表之间的cancat和merge。如果有兴趣,欢迎关注:python小工具。让我们一起努力,让办公变得更方便。
    在这里插入图片描述

    展开全文
  • import pandas as pd # 读取1(参数分别为1工作薄名称及其目录,2哪张表) df1 = pd.read_excel(r'D:/myExcel/1.xlsx', 'Sheet1') # 读取2(参数分别为1工作薄名称及其目录,2哪张表) d...

    工作中,我们会经常遇到需要对表中记录进行合并的情况,如下图所示:
    在这里插入图片描述
    需要得到如下结果:
    在这里插入图片描述
    下面我将通过几行python代码实现上述功能:

    import pandas as pd
    # 读取1表(参数分别为1工作薄名称及其目录,2哪张表)
    df1 = pd.read_excel(r'D:/myExcel/1.xlsx', 'Sheet1')
    # 读取2表(参数分别为1工作薄名称及其目录,2哪张表)
    df2 = pd.read_excel(r'D:/myExcel/2.xlsx', 'Sheet1')
    # 对结果按行进行连接,入参为列表,列表中的内容为你需要合并的内容
    df = pd.concat([df1, df2])
    # 将结果输出到excel表格中,需要设置index=None
    # index指的是在读取表时,如果不指定,pandas会默认为每行添加一个索引,输出时需要把默认添加的索引删除掉
    df.to_excel(r'D:/myExcel/res.xlsx', 'Sheet1', index=None)
    
    哈哈,如上就是python对两张表进行合并(按行添加)的结果,下一次我将讲述按列进行合并时的操作。如果您有兴趣,欢迎关注我的微信公众号:python小工具。
    

    在这里插入图片描述

    展开全文
  • Pandas连接

    2020-12-29 19:42:26
    美国疫情数据集 现有美国4月12日至11月16日的疫情报表,请将New York的Confirmed, Deaths, Recovered, Active合并为一张,索引为按如下方法生成的日期字符串序列: ...假设连接两表无公共列 调用方式为 join(df1, d

    美国疫情数据集

    现有美国4月12日至11月16日的疫情报表,请将New York的Confirmed, Deaths, Recovered, Active合并为一张表,索引为按如下方法生成的日期字符串序列:

    找到4月12日的报表数据:
    在这里插入图片描述
    设置索引
    在这里插入图片描述
    调出4月12日的的New York的Confirmed, Deaths, Recovered, Active
    在这里插入图片描述
    以日期为主的字符串索引列表
    在这里插入图片描述
    Ex2:实现join函数

    请实现带有how参数的join函数

    假设连接的两表无公共列
    调用方式为 join(df1, df2, how=“left”)
    给出测试样例

    以下选取课后答案,进行理解
    在这里插入图片描述左拼接
    在这里插入图片描述
    右拼接
    在这里插入图片描述

    索引连接
    pandas 中利用 join 函数来处理索引连接,它的参数选择要少于 merge ,除了必须的 on 和 how 之外,可以对重复的列指定左右后缀 lsuffix 和 rsuffix 。其中, on 参数指索引名,单层索引时省略参数表示按照当前索引连接。

    方向连接
    在 concat 中,最常用的有三个参数,它们是 axis, join, keys ,分别表示拼接方向,当确认要使用多表直接的方向合并时,尤其是横向的合并,可以先用 reset_index 方法恢复默认整数索引再进行合并,防止出现由索引的错误。

    当确认要使用多表直接的方向合并时,尤其是横向的合并,可以先用 reset_index 方法恢复默认整数索引再进行合并,防止出现由索引的误对齐和重复索引的笛卡尔积带来的错误结果。
    序列与表的合并

    在 append 中,如果原表是默认整数序列的索引,那么可以使用 ignore_index=True 对新序列对应索引的自动标号,否则必须对 Series 指定 name 属性。

    pandas中的关系型连接函数merge和join中提供了how参数来代表连接形式,分为左连接left、右连接right、内连接inner、外连接outer,它们的区别可以用如下示意图表示:
    在这里插入图片描述
    从图中可以看到,所谓左连接即以左边的键为准,如果右边表中的键于左边存在,那么就添加到左边,否则则处理为缺失值,右连接类似处理。内连接只负责合并两边同时出现的键,而外连接则会在内连接的基础上包含只在左边出现以及只在右边出现的值,因此外连接又叫全连接。上面这个简单的例子中,同一个表中的键没有出现重复的情况,那么如果出现重复的键应该如何处理?只需把握一个原则,即只要两边同时出现的值,就以笛卡尔积的方式加入,如果单边出现则根据连接形式进行处理。其中,关于笛卡尔积可用如下例子说明:设左表中键张三出现两次,右表中的张三也出现两次,那么逐个进行匹配,最后产生的表必然包含2*2个姓名为张三的行。下面是一个对应例子的示意图:
    在这里插入图片描述
    显然在不同的场合应该使用不同的连接形式。其中左连接和右连接是等价的,由于它们的结果中的键是被一侧的表确定的,因此常常用于有方向性地添加到目标表。内外连接两侧的表,经常是地位类似的,想取出键的交集或者并集,具体的操作还需要业务的需求来判断。

    一个热爱学习的社区和论坛http://datawhale.club 一群热爱学习小伙伴无私奉献

    展开全文
  • pandas - merge, concat合并两张表

    万次阅读 2017-08-30 16:03:24
    pandas中合并两张表的函数包括merge,concat。 1. merge 2. concat

    pandas中合并两张表的函数包括merge,concat。


    1. merge

    1.1 函数原型

    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)

    left代表左边的表;right代表右边的表;how代表连接方式;on代表连接的键。这四个是最主要的参数。其中how可以为:inner, outer, left, right,分别代表:交集,并集,以左边表为基准,以右边表为基准。


    1.2 实例

    import pandas as pd
    
    df1 = pd.DataFrame([[1,2,3],[5,6,7],[3,9,0],[8,0,3]], columns=["A", "B", "C"])
    df2 = pd.DataFrame([[1,2],[4,6],[3,9]], columns=["A", "D"])
    
    """ 
    df1 = 
        A	B	C
        1	2	3
        5	6	7
        3	9	0
        8	0	3
    
    df2 = 
        A	D
        1	2
        4	6
        3	9
    """
    
    
    
    """ how = "left"
    df3 = 
        A	B	C	D
        1	2	3	2.0
        5	6	7	nan
        3	9	0	9.0
        8	0	3	nan
    """
    df3 = pd.merge(df1, df2, on="A", how="left")
    
    
    
    """ how = "inner"
    df3 = 
        A	B	C	D
        1	2	3	2
        3	9	0	9
    """
    df3 = pd.merge(df1, df2, on="A", how="inner")

    2. concat

    concat是直接把多张表拼接在一起,与merge作用很像,但是可以连接多张表;与merge的差别在于,concat不会以某列作为主键来进行连接。

    2.1 函数原型

    concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verigy_integrity=False)

    展开全文
  • pandas 连接学习

    2020-12-29 12:51:31
    本文是DateWhale组队学习Pandas连接部分的学习心得。 方向连接之concat 在concat中,最常用的有三个参数,它们是axis, join, keys,分别表示拼接方向,连接形式,以及在新中指示来自于哪一张旧的名字。这里需要...
  • 可以通过多种方式将Pandas对象联合到一起 pandas.merge: 根据一个或多个键进行连接。类似SQL的连接操作 pandas.concat:使对象在...Pandas.DataFrame操作表连接有三种方式:merge, join, concat。下面就来说一说这...
  • Python之Pandas连接详解

    2021-03-24 15:49:38
    两张相关的按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩按照姓名和班级连接成总的成绩,又例如对企业员工的各类信息按照员工ID号进行连接汇总。由此可以看出,在关系型...
  • 本文使用到的技术点 使用pandas读取和写入exel; DataFrame类型转化为list difflib比较字符串的相似度 python多线程 队列queue import pandas as pd import difflib import queue ...#a读取 shanda_d...
  • pandas——Merge做之间的连接

    千次阅读 2019-01-12 12:16:06
    基于某个column或某些columns做连接 连接时有4种方法how = [‘left’, ‘right’, ‘outer’, ‘inner’],默认值how=‘inner’ how=‘inner’ 默认值,内连接(sql中的自然连接)。按参数on的值交,其实就是键的...
  • import pandas as pd import pymysql from sqlalchemy import create_engine 将连接数据库并读取数据的代码封装成一个方法 # 将连接数据库并读取数据的代码封装成一个方法 def reader(query, db, charset): sql = ...
  • Pandas学习——连接

    2020-12-29 21:33:12
    两张相关的按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩按照 姓名 和 班级 连接成总的成绩,又例如对企业员工的各类信息按照 员工ID号 进行连接汇总。由此可以看出,在...
  • Pandas 06-连接

    2020-12-29 01:47:05
    两张相关的按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩按照姓名\color{red}{姓名}姓名和班级\color{red}{班级}班级连接成总的成绩,又例如对企业员工的各类信息按照员工...
  • pandas7- 连接

    2020-12-29 21:21:26
    pandas6- 连接 6.1 关系型连接6.1.1 连接的基本...把两张相关的按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩按照 姓名和班级连接成总的成绩,又例如对企业员工的各类信息按照
  • 对于个表头相同的数据,其合并方法如下,通过pd.merge函数对指定的表头变量进行连接,此外该方法可通过控制left_indexh和right_index参数决定是否保留列标题(或index)。更详细的比较有待后续更新。。。 import...
  • Pandas 表连接(Merge,join,concatenate) 连接对象(Concatenating) pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=...
  • pandas连接

    2020-12-29 23:23:16
    连接 关系型连接 连接的基本理解 连接是将两个表整合成一个表,关系型数据常用的连接有四种:左连接,右连接,内连接,外连接,需要指定键值列,如上图所示...顾名思义,值连接就是两张表根据某一列的值或某几列的值的
  • 数据分析笔记--pandas的多表连接

    万次阅读 2018-06-05 11:24:12
    import pandas as pdimport numpy as np定义个DataFrame数据集使用merge进行多表连接1.默认连接方式(会使用之间相同的列名作为外键进行连接,如果有两边对不上的字段则会自动丢弃)2.通过on指定外键on指定外键...
  • pandas连接学习笔记

    2021-01-07 10:18:52
    两张相关的按照某一个或某一组键连接起来是一种常见操作,在关系型连接中,键 是十分重要的,往往用 on 参数表示。 另一个重要的要素是连接的形式。在 pandas 中的关系型连接函数merge 和join 中提供了how 参数...
  • pandas表连接 索引上的合并

    千次阅读 2017-10-15 22:23:22
    以上代码如果想改为外部连接 how = ‘outer’ 就可以了 同时合并双方索引 left2 = pd.DataFrame([[1,2],[3,4],[5,6]],index=[‘a’,’c’,’e’],columns=[‘Ohio’,’Neveda’]) right2 = pd....
  • 两张小抄,带你 “迅速” 掌握Pandas “数据清洗” 流程!
  • data和user的类型都是dataframe,用user id做为主键连接两张表,data和user中都有数据, 输出如下: Empty DataFrame Columns: [user id, item id, rating, timestamp, gender] Index: [] 怎么会是空的呢?
  • pandas基础--连接

    2020-12-29 23:05:33
    两张相关的按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩按照姓名\color{red}{姓名}姓名和班级\color{red}{班级}班级连接成总的成绩,又例如对企业员工的各类信息按照员工...
  • 两张相关的按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩按照 姓名 和 班级 连接成总的成绩,又例如对企业员工的各类信息按照 员工ID号 进行连接汇总。由此可以看出,在...
  • 入门pandas连接查询

    2021-01-28 22:17:28
    import pandas as pd 数据1= pd.DataFrame({'姓名':['叶问','李小龙','孙兴华','李小龙','叶问','叶问'],'出手次数1':np.arange(6)}) 数据2 = pd.DataFrame({'姓名':['黄飞鸿','孙兴华','李小龙'],'出手次数2':[1,2,...
  • 下面将介绍种常用的数据库的连接 微信公众号:大数据报文 连接MySQL # 首先要导入这个库,如果装过Anaconda会自带这个库 from sqlalchemy import create_engine # 获取与mysql的连接,格式为:协议:/...
  • Pandas进阶陆 连接操作

    2020-12-29 23:03:25
    Pandas进阶陆 连接操作 pandas进阶系列根据datawhale远昊大佬的joyful pandas教程写一些自己的心得和补充,本文部分引用了原教程,并参考了《利用Python进行数据分析》、pandas官网 另注:本文是对joyful pandas教程...
  • student: score: ...要求从students表里查出每个学生...import pandas as pd students = pd.read_excel("../016/Student_Score.xlsx",sheet_name="Students") scores = pd.read_excel("../016/Stud...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,078
精华内容 1,631
关键字:

pandas连接两张表