zoukankan      html  css  js  c++  java
  • Pandas入门之十五:合并连接

    已信任
    Jupyter 服务器: 本地
    Python 3: Not Started
    [1]
    
    
    
    import pandas as pd
    import numpy as np
    
    
    
    [6]
    
    
    
    
    yuwen = pd.DataFrame({
        'id':[1,2,3,4,5],
        'name':['小明','小敏','小红','小黑','小王'],
        'yuwenScore':[99,77,45,87,66]
    })
    yuwen
    id    name    yuwenScore
    0    1    小明    99
    1    2    小敏    77
    2    3    小红    45
    3    4    小黑    87
    4    5    小王    66
    [7]
    
    
    
    shuxue = pd.DataFrame({
        'id':[1,2,3,4,5],
        'name':['小明','小敏','小红','小黑','小王'],
        'shuxueScore':[79,56,88,92,68]
    })
    shuxue
    id    name    shuxueScore
    0    1    小明    79
    1    2    小敏    56
    2    3    小红    88
    3    4    小黑    92
    4    5    小王    68
    [8]
    
    
    
    pd.merge(yuwen,shuxue,on='id')# 通过id合并
    id    name_x    yuwenScore    name_y    shuxueScore
    0    1    小明    99    小明    79
    1    2    小敏    77    小敏    56
    2    3    小红    45    小红    88
    3    4    小黑    87    小黑    92
    4    5    小王    66    小王    68
    [9]
    
    
    
    pd.merge(yuwen,shuxue,on=['id','name'])
    id    name    yuwenScore    shuxueScore
    0    1    小明    99    79
    1    2    小敏    77    56
    2    3    小红    45    88
    3    4    小黑    87    92
    4    5    小王    66    68
    [10]
    
    
    
    # 新数据
    shuxue = pd.DataFrame({
        'id':[1,2,3,4,5,6],
        'name':['小明','小敏','小红','小黑','小王','老李'],
        'shuxueScore':[79,56,88,92,68,88]
    })
    shuxue
    id    name    shuxueScore
    0    1    小明    79
    1    2    小敏    56
    2    3    小红    88
    3    4    小黑    92
    4    5    小王    68
    5    6    老李    88
    [11]
    
    
    
    pd.merge(yuwen,shuxue,on='id')# 通过id合并,取的是交集,相同的合并
    id    name_x    yuwenScore    name_y    shuxueScore
    0    1    小明    99    小明    79
    1    2    小敏    77    小敏    56
    2    3    小红    45    小红    88
    3    4    小黑    87    小黑    92
    4    5    小王    66    小王    68
    [12]
    
    
    
    pd.merge(yuwen,shuxue,on=['id','name'], how='inner')# 默认按照inner合并,合并交集
    id    name    yuwenScore    shuxueScore
    0    1    小明    99    79
    1    2    小敏    77    56
    2    3    小红    45    88
    3    4    小黑    87    92
    4    5    小王    66    68
    [13]
    
    
    
    # how设置合并的方式,inner:键的交集;left左边的;right右边的;outer使用联合
    
    pd.merge(yuwen,shuxue,on=['id','name'], how='right')# 按照右边的表shuxue合并
    id    name    yuwenScore    shuxueScore
    0    1    小明    99.0    79
    1    2    小敏    77.0    56
    2    3    小红    45.0    88
    3    4    小黑    87.0    92
    4    5    小王    66.0    68
    5    6    老李    NaN    88
    [14]
    
    
    
    yuwen = pd.DataFrame({
        'id':[1,2,3,4,5,6],
        'name':['小明','小敏','小红','小黑','小王','老陈'],
        'yuwenScore':[99,77,45,87,66,99]
    })
    yuwen
    id    name    yuwenScore
    0    1    小明    99
    1    2    小敏    77
    2    3    小红    45
    3    4    小黑    87
    4    5    小王    66
    5    6    老陈    99
    [17]
    
    
    
    pd.merge(yuwen,shuxue,on=['id','name'], how='outer')
    id    name    yuwenScore    shuxueScore
    0    1    小明    99.0    79.0
    1    2    小敏    77.0    56.0
    2    3    小红    45.0    88.0
    3    4    小黑    87.0    92.0
    4    5    小王    66.0    68.0
    5    6    老陈    99.0    NaN
    6    6    老李    NaN    88.0
    [-]
  • 相关阅读:
    nginx 代理概念理解
    nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决
    Mybatis-Generator 详解 http://www.cnblogs.com/jtzfeng/p/5254798.html
    web容器线程数和程序中线程阻塞导致 请求超时
    教程-Delphi操作快捷键
    PC-博客首页中增加必应或GOOGLE搜索功能
    PC-大概最全的黑客工具表了
    PC-计算机动行命令里的密密!系统管理程序!
    PC-红警联机问题与下载
    PC-破解RAR软件注册问题
  • 原文地址:https://www.cnblogs.com/vvzhang/p/15024249.html
Copyright © 2011-2022 走看看