concat()、merge()的区别

concat,merge的区别

In [154]:
data1=pd.DataFrame(np.arange(6).reshape(2,3),columns=list('abc'))
data2=pd.DataFrame(np.arange(20,26).reshape(2,3),columns=list('ayz'))
 
In [155]:
data1
 
 
Out[155]:
 abc
0 0 1 2
1 3 4 5
In [170]:
dd=pd.DataFrame(np.arange(6).reshape(2,3),columns=list('acb'))
 
 
In [171]:
 
dd
 
 
Out[171]:
 acb
0 0 1 2
1 3 4 5
In [172]:
 
pd.concat([data1,dd]) ##concat可以自动对齐列变量 
Out[172]:
 abc
0 0 1 2
1 3 4 5
0 0 2 1
1 3 5 4
In [156]:
data2
 
 
Out[156]:
 ayz
0 20 21 22
1 23 24 25
In [164]:
 data3=pd.concat([data1,data2],axis=0)
data3
 
Out[164]:
 abcyz
0 0 1.0 2.0 NaN NaN
1 3 4.0 5.0 NaN NaN
0 20 NaN NaN 21.0 22.0
1 23 NaN NaN 24.0 25.0
In [160]:
 
data4=pd.concat([data1,data2],axis=1)
data4
 
 
Out[160]:
 abcayz
0 0 1 2 20 21 22
1 3 4 5 23 24 25
In [162]:
 data5=pd.concat([data1,data2],axis=1,join='inner')
data5
 
 
Out[162]:
 abcayz
0 0 1 2 20 21 22
1 3 4 5 23 24 25
In [167]:
 
data01=pd.merge(data1,data2,on='a')
data01
 
 
Out[167]:
 abcyz
In [169]:
 data02=pd.merge(data1,data2,on='a',how='outer')
data02
 
 
Out[169]:
 abcyz
0 0 1.0 2.0 NaN NaN
1 3 4.0 5.0 NaN NaN
2 20 NaN NaN 21.0 22.0
3 23 NaN NaN 24.0 25.0

posted on 2019-07-29 08:23  离云1  阅读(1905)  评论(0编辑  收藏  举报

导航