concat 與其說是鏈接,更準確的說是拼接。就是把兩個表直接合在一塊兒。因而有一個突出的問題,是橫向拼接仍是縱向拼接,因此concat 函數的關鍵參數是axis 。
函數的具體參數是:app
concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verigy_integrity=False)
objs 是須要拼接的對象集合,通常爲列表或者字典函數
axis=0 是按照行拼接,拼接以後行數增長,列數也根據join來定,join=’outer’時,列數是兩表並集。同理join=’inner’,列數是兩表交集。spa
在默認狀況下爲縱向拼接,即axis=0,此時有.net
concat([df1,df2]) 等價於 df1.append(df2)
在axis=1 時爲橫向拼接 ,此時有code
concat([df1,df2],axis=1) 等價於 merge(df1,df2,left_index=True,right_index=True,how='outer')
以上轉自: https://blog.csdn.net/qq_30718387/article/details/72152461對象
應用舉例:blog
df=pandas.DataFrame() df2=pandas.DataFrame() df['id']=[1,2,3,4]
df['name']=['zhang','chen','lee','wang'] df2['id']=[2,3,4,5]
df2['place']=['Shenzhen','Hongkong','NewYork','London']
df3=pandas.DataFrame({'id':[]})
用法1:把來自兩個不一樣DataFrame的列,縱向拼接到一塊兒,賦值給另外一個DataFrame的列。get
df3['id']=pandas.concat([df['id'],df2['id']],axis=0,ignore_index=True)
執行後,pandas
df3['id']=[1,2,3,4,5,2,3,4,5]
用法2:兩個DataFrame進行縱向拼接:it
df4=pandas.concat([df,df2],axis=0,ignore_index=True)
執行後,df4=
index | id | name | place |
0 | 1 | zhang | NaN |
1 | 2 | chen | NaN |
2 | 3 | lee | NaN |
3 | 4 | wang | NaN |
4 | 2 | NaN | Shenzhen |
5 | 3 | NaN | HongKong |
6 | 4 | NaN | NewYork |
7 | 5 | NaN | London |
用法3:兩個DataFrame進行橫向拼接:
df4=pandas.concat([df,df2],axis=1,ignore_index=True)
執行後,df4=
index | 0 | 1 | 2 | 3 |
0 | 1 | zhang | 2 | Shenzhen |
1 | 2 | chen | 3 | HongKong |
2 | 3 | lee | 4 | NewYork |
3 | 4 | wang | 5 | London |
多個拼接還能夠使用生成器:
dfs=[df1,df2,df3,df4,df5] df6=pandas.DataFrame() df6['id']=pd.concat([df['id'] for df in dfs])