• 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
    [-]
  • 相关阅读:
    vb.net与XML之间的操作
    C#动态生成WORD文档并进行操作。
    Excel的VBA连接数据库方法
    C#动态生成EXCLE并进行添加内容
    c#与WORD之间的基本操作
    C#运用ADO.net动态创建excle并进行相应的数据修改显示
    USACOMother's Milk
    USACOArithmetic Progressions
    USACONumber Triangles
    USACOMilking Cows
  • 原文地址:https://www.cnblogs.com/vvzhang/p/15024249.html
Copyright © 2020-2023  润新知