pandas數(shù)據(jù)合并concat, merge, append, join

一、DataFrame.concat()

語(yǔ)法:

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

參數(shù):

objs: series,dataframe或者是panel構(gòu)成的序列l(wèi)sit

axis:需要合并鏈接的軸,0是行,1是列

join:連接的方式 inner,或者outer

只是單純的把兩個(gè)表拼接在一起,參數(shù)axis是關(guān)鍵,它用于指定合并的軸是行還是列,axis默認(rèn)是0。

# 將兩個(gè)dataframe按列合并:

list_=[random.randint(1,100)foriinrange(len(df))]df2=pd.DataFrame(list_,columns=['value'])

pd.concat([df,df2],axis=1)# 按行合并,則axis=0# 將第一行與最后一行拼接:pd.concat([df[:1],df[-2:-1]])

二、DataFrame.concat()

df = pd.merge(left, right, how = "inner",on = "None")

參數(shù):

left: 左表。也就是第一個(gè)df。

right:右表。也就是第二個(gè)df。

how: 和concat里面的"join"類似,表示“如何合并兩表。

1)left: 只使用左表的鍵。

2)right:只使用右表的鍵。

3)inner: 使用左右表鍵的交集。

4)outer:使用左右表鍵的并集。

on: 表示按照哪一個(gè)鍵來(lái)進(jìn)行合并。

類似于關(guān)系型數(shù)據(jù)庫(kù)的連接方式,可以根據(jù)一個(gè)或多個(gè)鍵將不同的DatFrame連接起來(lái)。該函數(shù)的典型應(yīng)用場(chǎng)景是,針對(duì)同一個(gè)主鍵存在兩張不同字段的表,根據(jù)主鍵整合到一張表里面。

# 按照單列合并數(shù)據(jù):pd.merge(df,df1,on='course')# 按照多列合并數(shù)據(jù):多列用列表pd.merge(df,df1,how='left',on=['course','grade'])#內(nèi)外連接合并:pd.merge(df,df1,how='outer',on='course')# inner內(nèi)連接,outer外連接

三、Series.append()/DataFrame.append()

語(yǔ)法:

DataFrame.append(other,ignore_index=False, verify_integrity=False, sort=None)

參數(shù):

other: DataFrame、series、dict、list這樣的數(shù)據(jù)結(jié)構(gòu)

ignore_index:默認(rèn)值為False,如果為T(mén)rue則不使用index標(biāo)簽

verify_integrity :默認(rèn)值為False,如果為T(mén)rue當(dāng)創(chuàng)建相同的index時(shí)會(huì)拋出ValueError的異常o sort: boolean,默認(rèn)是None,該屬性在pandas的0.23.0的版本才存在。

功能說(shuō)明:

向dataframe對(duì)象中添加新的行,如果添加的列名不在dataframe對(duì)象中,將會(huì)被當(dāng)作新的列進(jìn)行添加

# 將第3行數(shù)據(jù)添加至末尾:df.append(df.iloc[2])

四、DataFrame.join()

語(yǔ)法:

DataFrame.join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)

參數(shù):

other:【DataFrame,或者帶有名字的Series,或者DataFrame的list】如果傳遞的是Series,那么其name屬性應(yīng)當(dāng)是一個(gè)集合,并且該集合將會(huì)作為結(jié)果DataFrame的列名

on:【列名稱,或者列名稱的list/tuple,或者類似形狀的數(shù)組】連接的列,默認(rèn)使用索引連接

how:【{‘left’, ‘right’, ‘outer’, ‘inner’}, default:‘left’】連接的方式,默認(rèn)為左連接

lsuffix:【string】左DataFrame中重復(fù)列的后綴

rsuffix:【string】右DataFrame中重復(fù)列的后綴

sort:【boolean, default:False】按照字典順序?qū)Y(jié)果在連接鍵上排序。如果為False,連接鍵的順序取決于連接類型(關(guān)鍵字)。

主要用于索引上的合并,其參數(shù)的意義與merge方法中的參數(shù)意義基本一樣。該方法最為簡(jiǎn)單,主要用于索引上的合并

f.join(df1,lsuffix='_left',rsuffix='_right')

總結(jié):

join 最簡(jiǎn)單,主要用于基于索引的橫向合并拼接

merge 最常用,主要用于基于指定列的橫向合并拼接

concat最強(qiáng)大,可用于橫向和縱向合并拼接

append,主要用于縱向追加

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容