Pandas 合并多個(gè)Dataframe(merge,concat)的方法
在數(shù)據(jù)處理的時(shí)候,尤其在搞大數(shù)據(jù)競(jìng)賽的時(shí)候經(jīng)常會(huì)遇到一個(gè)問(wèn)題就是,多個(gè)表單的合并問(wèn)題,比如一個(gè)表單有user_id和age這兩個(gè)字段,另一個(gè)表單有user_id和sex這兩個(gè)字段,要把這兩個(gè)表合并成只有user_id、age、sex三個(gè)字段的表怎么辦的,普通的拼接是做不到的,因?yàn)閡ser_id每一行之間不是對(duì)應(yīng)的,像拼積木似的橫向拼接肯定是不行的。
pandas中有個(gè)merge函數(shù)可以做到這個(gè)實(shí)用的功能,merge這個(gè)詞會(huì)點(diǎn)SQL語(yǔ)言的應(yīng)該都不陌生。
下面說(shuō)說(shuō)merge函數(shù)怎么用:
df = pd.merge(df1, df2, how='left', on='user_id')
用法很簡(jiǎn)單,說(shuō)一下后兩個(gè)參數(shù)就可以了,how=""參數(shù)表示以哪個(gè)表的key為準(zhǔn),上面的how="left"表示以表df1為準(zhǔn),而key也就是on=""的參數(shù)
how="left"就是說(shuō),保留user_id字段的全部信息,不增加也不減少,但是拼接的時(shí)候只把df2表中的與df1中user_id字段交集的部分合并上就可以了,如果df2中出現(xiàn)了某個(gè)user_id在df1中沒(méi)有出現(xiàn),就拋棄掉這個(gè)樣本不作處理。
如果要進(jìn)行多key合并:
df = pd.merge(df1, df2, how='left', on=['user_id','sku_id'])
但是如果想僅進(jìn)行簡(jiǎn)單的“拼接”而不是合并呢,要使用concat函數(shù):
df = pd.concat( [df_user, dummies_sex, dummies_age, dummies_level], axis=1 )
這樣可以保留這些表單的全部信息,參數(shù)axis=1表示列拼接,axis=0表示行拼接。
要保證背個(gè)表單的行數(shù)是相同的,并且每一行對(duì)應(yīng)的key也是相同的,列拼接才變得有意義
以上這篇Pandas 合并多個(gè)Dataframe(merge,concat)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python簡(jiǎn)單幾步實(shí)現(xiàn)時(shí)間日期處理到數(shù)據(jù)文件的讀寫
這篇文章主要為大家介紹了python簡(jiǎn)單幾步實(shí)現(xiàn)時(shí)間日期處理到數(shù)據(jù)文件的讀寫詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python Pandas中的shift()函數(shù)實(shí)現(xiàn)數(shù)據(jù)完美平移應(yīng)用場(chǎng)景探究
shift()?是 Pandas 中一個(gè)常用的數(shù)據(jù)處理函數(shù),它用于對(duì)數(shù)據(jù)進(jìn)行移動(dòng)或偏移操作,常用于時(shí)間序列數(shù)據(jù)或需要計(jì)算前后差值的情況,本文將詳細(xì)介紹?shift()?函數(shù)的用法,包括語(yǔ)法、參數(shù)、示例以及常見(jiàn)應(yīng)用場(chǎng)景2024-01-01
python sort、sort_index方法代碼實(shí)例
這篇文章主要介紹了python sort、sort_index方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
scikit-learn處理缺失數(shù)據(jù)的方法與實(shí)踐
scikit-learn作為Python中廣泛使用的機(jī)器學(xué)習(xí)庫(kù),提供了多種工具和技術(shù)來(lái)幫助我們處理缺失數(shù)據(jù),本文將詳細(xì)介紹sklearn處理缺失數(shù)據(jù)的方法,并提供實(shí)際的代碼示例,需要的朋友可以參考下2024-06-06
django創(chuàng)建超級(jí)用戶時(shí)指定添加其它字段方式
這篇文章主要介紹了django創(chuàng)建超級(jí)用戶時(shí)指定添加其它字段方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
python操作Excel神器openpyxl看這一篇就夠了
Python使用openpyxl讀寫excel文件這是一個(gè)第三方庫(kù),可以處理xlsx格式的Excel文件,下面這篇文章主要給大家介紹了關(guān)于python操作Excel神器openpyxl的相關(guān)資料,需要的朋友可以參考下2023-04-04
使用matplotlib繪制圖例標(biāo)簽中帶有公式的圖
今天小編就為大家分享一篇使用matplotlib繪制圖例標(biāo)簽中帶有公式的圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python中__init__方法知識(shí)點(diǎn)詳解
Python中常會(huì)看到在很多類中都有一個(gè)__init__函數(shù),該函數(shù)有什么作用,又該如何使用呢,下面這篇文章主要給大家介紹了關(guān)于python中__init__知識(shí)點(diǎn)的相關(guān)資料,需要的朋友可以參考下2023-04-04
Python實(shí)現(xiàn)的計(jì)算器功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的計(jì)算器功能,涉及Python四則運(yùn)算、取反、百分比等相關(guān)數(shù)學(xué)運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04

