zoukankan      html  css  js  c++  java
  • pandas merge,join,concat数据之间连接

    1.merge,类似数据库的,on可以有2个或者多个条件

    # (1)内连接,pd.merge(a1, a2, on='key')
    # (2)左连接,pd.merge(a1, a2, on='key', how='left')
    # (3)右连接,pd.merge(a1, a2, on='key', how='right')
    # (4)外连接, pd.merge(a1, a2, on='key', how='outer')
    
    data1 = pd.DataFrame(np.arange(0,16).reshape(4,4), columns=list('abcd'))
    data2 = [[4,1,5,7],[6,5,7,1],[9,9,123,129],[16,16,32,1]]
    data2 = pd.DataFrame(data2,columns = ['a','b','c','d'])
    pd.merge(data1,data2,on
    ='b') #内连接 ,也就是交集 pd.merge(data1,data2,on='b',how='left') #左连接 ,没有值的标记为空 pd.merge(data1,data2,on='b',how='right') #右连接 ,没有值的标记为空 pd.merge(data1,data2,on='b',how='outer') #外连接 ,求同存异

     

     

     2.append  类似于union all

    #ignore_index = True:这个时候 表示index重新记性排列
    data1.append(data2,ignore_index = True)

    3.join列名不能重复,类似于在将第二个数据拼接在右边

    data2.columns=list('pown')
    data1.join(data2)

     4.concat

    #pd.concat(objs, axis=0, join='outer', join_axes=None,ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False)
    #参数说明:objs:series,dataframe,或者panel构成的序列list,axis:0 行,1列,join:inner,outer
    
    data1.columns = list('abcd')
    data2.columns =list('abcd')
    data3 = data2
    pd.concat([data1,data2,data3],keys=['data1','data2','data3'])
    
    pd.concat([data1,data2,data3],axis = 1,keys = ['data1','data2','data3'])
    pd.concat([data1,data2,data3],axis = 1)

     

  • 相关阅读:
    JavaScript中的几种继承方式对比
    JavaScript垃圾收集-标记清除和引用计数
    PHP安装sqlsrv扩展步骤,PHP如何连接上SQL
    HTML5的应用缓存
    实现跨域请求的4种方法
    JSON的详细介绍
    Ajax的方法和使用代码
    git常用命令
    关于BOM
    DOM之表格与表单基础分享
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13274960.html
Copyright © 2011-2022 走看看