Pandas 合并多個Dataframe(merge,concat)的方法
在數(shù)據(jù)處理的時候,尤其在搞大數(shù)據(jù)競賽的時候經(jīng)常會遇到一個問題就是,多個表單的合并問題,比如一個表單有user_id和age這兩個字段,另一個表單有user_id和sex這兩個字段,要把這兩個表合并成只有user_id、age、sex三個字段的表怎么辦的,普通的拼接是做不到的,因為user_id每一行之間不是對應(yīng)的,像拼積木似的橫向拼接肯定是不行的。
pandas中有個merge函數(shù)可以做到這個實用的功能,merge這個詞會點SQL語言的應(yīng)該都不陌生。
下面說說merge函數(shù)怎么用:
df = pd.merge(df1, df2, how='left', on='user_id')
用法很簡單,說一下后兩個參數(shù)就可以了,how=""參數(shù)表示以哪個表的key為準,上面的how="left"表示以表df1為準,而key也就是on=""的參數(shù)
how="left"就是說,保留user_id字段的全部信息,不增加也不減少,但是拼接的時候只把df2表中的與df1中user_id字段交集的部分合并上就可以了,如果df2中出現(xiàn)了某個user_id在df1中沒有出現(xiàn),就拋棄掉這個樣本不作處理。
如果要進行多key合并:
df = pd.merge(df1, df2, how='left', on=['user_id','sku_id'])
但是如果想僅進行簡單的“拼接”而不是合并呢,要使用concat函數(shù):
df = pd.concat( [df_user, dummies_sex, dummies_age, dummies_level], axis=1 )
這樣可以保留這些表單的全部信息,參數(shù)axis=1表示列拼接,axis=0表示行拼接。
要保證背個表單的行數(shù)是相同的,并且每一行對應(yīng)的key也是相同的,列拼接才變得有意義
以上這篇Pandas 合并多個Dataframe(merge,concat)的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3中的re.findall()方法及re.compile()
這篇文章主要介紹了Python3中的re.findall()方法及re.compile(),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05關(guān)于python 的legend圖例,參數(shù)使用說明
這篇文章主要介紹了關(guān)于python 的legend圖例,參數(shù)使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04ssh批量登錄并執(zhí)行命令的python實現(xiàn)代碼
有個任務(wù)是在這些電腦上執(zhí)行某些命令,者說進行某些操作,比如安裝某些軟件,拷貝某些文件,批量關(guān)機等。如果一臺一臺得手工去操作,費時又費力,如果要進行多個操作就更麻煩啦2012-05-05Pytorch實現(xiàn)的手寫數(shù)字mnist識別功能完整示例
這篇文章主要介紹了Pytorch實現(xiàn)的手寫數(shù)字mnist識別功能,結(jié)合完整實例形式分析了Pytorch模塊手寫字識別具體步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-12-12python數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之實現(xiàn)線性表的順序
這篇文章主要為大家詳細介紹了python數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之實現(xiàn)線性表的順序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09