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)

     

  • 相关阅读:
    Linux堆内存管理深入分析 (上半部)【转】
    TCMalloc小记【转】
    Linux signal 那些事儿(4)信号的deliver顺序【转】
    Linux signal 那些事儿 (3)【转】
    Linux signal那些事儿【转】
    Linux signal 那些事儿(2)【转】
    常用的Firefox浏览器插件、Chrome浏览器插件收藏
    vi 常用命令
    清除浮动新说
    【荐】万能清除浮动样式
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13274960.html
Copyright © 2011-2022 走看看