zoukankan      html  css  js  c++  java
  • 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'>

     
  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/xxswkl/p/10752007.html
Copyright © 2011-2022 走看看