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]:
  a b c
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]:
  a c b
0 0 1 2
1 3 4 5
In [172]:
 
pd.concat([data1,dd]) ##concat可以自动对齐列变量 
Out[172]:
  a b c
0 0 1 2
1 3 4 5
0 0 2 1
1 3 5 4
In [156]:
data2
 
 
Out[156]:
  a y z
0 20 21 22
1 23 24 25
In [164]:
  data3 =pd.concat([data1,data2],axis=0)
data3
 
Out[164]:
  a b c y z
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]:
  a b c a y z
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]:
  a b c a y z
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]:
  a b c y z
In [169]:
  data02 =pd.merge(data1,data2,on='a',how='outer')
data02
 
 
Out[169]:
  a b c y z
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

猜你喜欢

转载自www.cnblogs.com/liyun1/p/11261874.html
今日推荐