• merge()函数


    1 

    a1 = pd.DataFrame({
                        'a': [1, 1, 2, 2, 2, 6, 7, 8, 10],
                        'b': [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        'c': [1, 2, 3, 4, 5, 6, 7, 8, 9]
                      })
    a2 = pd.DataFrame({
                        'a': [1, 1, 2, 4, 5, 6, 7, 8, 11],
                        'b': ['w', 'e', '2对应的出现3次', 4, 5, 6, 7, 8, 9],
                        'c': ['d', 'g', '2对应的出现3次', 4, 5, 6, 7, 8, 9]
                      })
    a3 = pd.merge( left = a1, right = a2, on = ['a'], how = 'left')
    print(a3)
    #      a  b_x  c_x       b_y       c_y
    # 0    1    1    1         w         d
    # 1    1    1    1         e         g
    # 2    1    2    2         w         d
    # 3    1    2    2         e         g
    # 4    2    3    3  2对应的出现3次  2对应的出现3次
    # 5    2    4    4  2对应的出现3次  2对应的出现3次
    # 6    2    5    5  2对应的出现3次  2对应的出现3次
    # 7    6    6    6         6         6
    # 8    7    7    7         7         7
    # 9    8    8    8         8         8
    # 10  10    9    9       NaN       NaN

    用于融合的函数

    https://blog.csdn.net/brucewong0516/article/details/82707492

    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,

             validate=None)

    融合原则 :若不指定左右,则必须是key中相同的值才可以融合(左右指的是要融合的数组不是key)

               若指定了左右,则指定的一列必须有,另一列继续融合,出现两个及以上相同的不会丢失。若两边都有相同的,则最终个数是按乘法算。比如当按左边融合时,最终的个数不一定是左边的id个数,应该是每个id对应数量乘积之和

               若指定的是outer,则是最大限度的融合,实际上是左融合和右融合的并集

               若指定的是inner,则是最小限度的融合,实际上是左融合和右融合的交集

    注意:how的参数必须是 left和right

    2 merge()做两个表的融合时,注意融合后表的index始终是按照左边的表格算的,当想要融合后的表格按照某个表的融合列排序时,就要将该表放在左边,与how是left或right无关.

    3  left和right后面的表格不加'',否则就成字符串了,会报错:ValueError: can not merge DataFrame with instance of type <class 'str'>

     
  • 相关阅读:
    在Netty使用中TLSv1.3
    基本路径测试
    测试准备
    skywalking源码中添加日志代码并打印
    Java应用启动集成skywalking
    Logback获取全局唯一标识 traceid记录到日志中
    通过示例展示Byte Buddy 如何增强 log() 方法
    SpringIOC
    Flask 信号机制
    Django 信号机制
  • 原文地址:https://www.cnblogs.com/xxswkl/p/10752007.html
Copyright © 2020-2023  润新知