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)