python的concat等多种用法详解
本文为大家分享了python的concat等多种用法,供大家参考,具体内容如下
1、numpy中的concatenate()函数:
>>>a=np.array([[1,2],[3,4]]) >>>b=np.array([[5,6]]) >>>np.concatenate((a,b),axis=0) array([[1,2], [3,4], [5,6]]) >>>np.concatenate((a,b.T),axis=1) array([[1,2,5], [3,4,6]])
2、pandas中的merge,concat,join
#In[]:数据的合并
#1,merge,类似数据库中的
#(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')
)
data1
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'])
data2
#内连接,交集
pd.merge(data1,data2,on=['b'])
#左连接注意:如果on有两个条件,on=['a','b']
#how='left','right','outer'
pd.merge(data1,data2,on='b',how='left')
#2,append,相当于R中的rbind
#ignore_index=True:这个时候表示index重新记性排列,而且这种方法是复制一个样本
data1.append(data2,ignore_index=True)
#3,join
data2.columns=list('pown')
#列名不能重叠:在这里的用法和R中rbind很像,但是join的用法还是相对麻烦的
result=data1.join(data2)
result
#4,concat这个方法能够实现上面所有的方法的效果
#concat函数是pandas底下的方法,可以把数据根据不同的轴进行简单的融合
#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
#a,相同字段表首尾巴相接
data1.columns=list('abcd')
data2.columns=list('abcd')
data3=data2
#为了更好的查看连接后的数据来源,添加一个keys更好查看
pd.concat([data1,data2,data3],keys=['data1','data2','data3'])
#b,列合并(也就是行对齐):axis=1,
pd.concat([data1,data2,data3],axis=1,keys=['data1','data2','data3'])
data4=data3[['a','b','c']]
#在有些数据不存在的时候,会自动填充NAN
pd.concat([data1,data4])
#c:join:inner交集,outer,并集
pd.concat([data1,data4],join='inner')
#在列名没有一个相同的时候会报错
#data4.index=list('mnp')
#pd.concat([data1,data4])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。