美文网首页
05.记录合并&字段合并&字段匹配

05.记录合并&字段合并&字段匹配

作者: 李慕玄 | 来源:发表于2018-07-03 05:15 被阅读0次

    1.记录合并

    将两个结构相同的数据框合并成一个数据框。
    函数concat([dataFrame1, dataFrame2, ...])

    屏幕快照 2018-07-02 19.55.54.png
    import pandas
    from pandas import read_csv
    data1 = read_csv(
        '/users/bakufu/desktop/4.10/data1.csv',
        sep = '|'        
    )
    
    data2 = read_csv(
        '/users/bakufu/desktop/4.10/data2.csv',
        sep = '|'        
    )
    
    data3 = read_csv(
        '/users/bakufu/desktop/4.10/data3.csv',
        sep = '|'        
    )
    
    data = pandas.concat([data1, data2, data3])
    
    屏幕快照 2018-07-02 21.47.59.png

    2.字段合并

    将同一个数据框中的不同列合并成新的列。
    方法x = x1 + x2 + x3 + ...合并后的数据以序列的形式返回。
    要求:所有序列长度一致,数据都是字符型。如果是数值型或逻辑型,需要进行转换。

    屏幕快照 2018-07-02 20.19.44.png
    from pandas import read_csv
    df = read_csv(
        '/users/bakufu/desktop/4.11/data.csv',
        sep = ' ',
        names = ['band', 'area', 'num']      
    )
    
    #将数值型数据转换成字符型数据
    df = df.astype(str)
    
    #合并成新列
    tel = df['band'] + df['area'] + df['num']
    
    #将tel添加到df数据框的tel列
    df['tel'] = tel
    
    屏幕快照 2018-07-02 20.37.46.png

    3.字段匹配

    根据各表共有的关键字段,把各表所需的记录进行一一对应。
    函数merge(x, y, left_on, right_on)
    需要匹配的数据列,应使用用一种数据类型。
    返回值:DataFrame

    参数 注释
    x 第一个数据框
    y 第二个数据框
    left_on 第一个数据框用于匹配的列
    right_on 第二个数据框用于匹配的列
    import pandas
    items = pandas.read_csv(
        '/users/bakufu/desktop/4.12/data1.csv',
        sep = '|',
        names = ['id', 'comments', 'title']
    )
    
    prices = pandas.read_csv(
        '/users/bakufu/desktop/4.12/data2.csv',
        sep = '|',
        names = ['id', 'oldPrice', 'nowPrice']    
    )
    
    屏幕快照 2018-07-02 22.04.03.png 屏幕快照 2018-07-02 22.04.25.png

    3.1 默认只保留连接上的部分

    第10行已经消失

    itemPrices = pandas.merge(
        items,
        prices,
        left_on = 'id',
        right_on = 'id'
    )
    
    屏幕快照 2018-07-02 22.02.37.png

    3.2 使用左连接

    即使与右边数据框匹配不上,也要保留左边内容,右边未匹配数据用空值代替

    itemPrices = pandas.merge(
        items,
        prices,
        left_on = 'id',
        right_on = 'id',
        how = 'left'
    )
    
    屏幕快照 2018-07-02 21.38.15.png

    3.3 使用右连接

    即使与左边数据框匹配不上,也要保留右边内容,左边未匹配数据用空值代替

    itemPrices = pandas.merge(
        items,
        prices,
        left_on = 'id',
        right_on = 'id',
        how = 'right'
    )
    
    屏幕快照 2018-07-02 21.38.49.png

    3.4 保留左右表所有数据行

    即使连接不上,也保留所有未连接的部分,使用空值填充

    itemPrices = pandas.merge(
        items,
        prices,
        left_on = 'id',
        right_on = 'id',
        how = 'outer'
    )
    
    屏幕快照 2018-07-02 21.41.59.png

    相关文章

      网友评论

          本文标题:05.记录合并&字段合并&字段匹配

          本文链接:https://www.haomeiwen.com/subject/worruftx.html