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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM