Pandas中DataFrame數據合並、連接(concat、merge、join)之concat


一、concat:沿着一條軸,將多個對象堆疊到一起

concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, 
       keys=None, levels=None, names=None, verify_integrity=False, copy=True): 

 objs:需要連接的對象集合,一般是列表或字典;

 axis:連接軸向;

 join:參數為‘outer’或‘inner’;

 join_axes=[]:指定自定義的索引;

 keys=[]:創建層次化索引;

 ignore_index=True:重建索引

 

pd.concat()只是單純的把兩個表拼接在一起,參數axis是關鍵,它用於指定是行還是列,axis默認是0。

當axis=0時,pd.concat([obj1, obj2])的效果與obj1.append(obj2)是相同的;

當axis=1時,pd.concat([obj1, obj2], axis=1)的效果與pd.merge(obj1, obj2, left_index=True, right_index=True, how='outer')是相同的。merge方法的介紹請參看下文。

import  pandas as pd
import numpy  as np
random = np.random.RandomState(0)  #隨機數種子,相同種子下每次運行生成的隨機數相同
df1=pd.DataFrame(random.randn(3,4),columns=['a','b','c','d'])
df1

random = np.random.RandomState(0)
df2=pd.DataFrame(random.randn(2,3),columns=['b','d','a'],index=["a1","a2"])
df2

random = np.random.RandomState(1)
df22=pd.DataFrame(random.randn(3,3),columns=['b','d','a'],index=['1',"a1","a2"])
df22

 

當axis=0時

pd.concat([df1,df2],axis=0)

pd.concat([df1,df2],axis=0,join="outer")

df12=df1.append(df2)
df12

 

pd.concat([df1,df2],axis=0,join="inner")

 

當axis=1時

pd.concat([df1,df2],axis=1,join='inner')

pd.concat([df1,df1],axis=1,join='inner') #和outer一樣

pd.concat([df1,df2],axis=1,join="outer")

 

pd.concat([df1,df22],axis=1,join="inner")

pd.concat([df1,df22],axis=1,join="outer")

 

pd.concat([df1,df1],axis=1,join="outer")

 


免責聲明!

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



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