Python Pandas中合并數(shù)據(jù)的5個函數(shù)使用詳解
前幾天在一個群里面,看到一位朋友,說到自己的阿里面試,被問了一些關(guān)于pandas的使用。其中一個問題是:pandas中合并數(shù)據(jù)的5中方法。
今天借著這個機會,就為大家盤點一下pandas中合并數(shù)據(jù)的5個函數(shù)。但是對于每個函數(shù),我這里不打算詳細(xì)說明,具體用法大家可以參考pandas官當(dāng)文檔。
- join主要用于基于索引的橫向合并拼接;
- merge主要用于基于指定列的橫向合并拼接;
- concat可用于橫向和縱向合并拼接;
- append主要用于縱向追加;
- combine可以通過使用函數(shù),把兩個DataFrame按列進行組合。
join
join是基于索引的橫向拼接,如果索引一致,直接橫向拼接。如果索引不一致,則會用Nan值填充。
索引一致
x = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']}, index=[0, 1, 2]) y = pd.DataFrame({'C': ['C0', 'C2', 'C3'], 'D': ['D0', 'D2', 'D3']}, index=[0, 1, 2]) x.join(y)
結(jié)果如下:
索引不一致
x = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']}, index=[0, 1, 2]) y = pd.DataFrame({'C': ['C0', 'C2', 'C3'], 'D': ['D0', 'D2', 'D3']}, index=[1, 2, 3]) x.join(y)
結(jié)果如下:
merge
merge是基于指定列的橫向拼接,該函數(shù)類似于關(guān)系型數(shù)據(jù)庫的連接方式,可以根據(jù)一個或多個鍵將不同的DatFrame連接起來。該函數(shù)的典型應(yīng)用場景是,針對同一個主鍵存在兩張不同字段的表,根據(jù)主鍵整合到一張表里面。
可以指定不同的how參數(shù),表示連接方式,有inner內(nèi)連、left左連、right右連、outer全連,默認(rèn)為inner;
x = pd.DataFrame({'姓名': ['張三', '李四', '王五'], '班級': ['一班', '二班', '三班']}) y = pd.DataFrame({'專業(yè)': ['統(tǒng)計學(xué)', '計算機', '繪畫'], '班級': ['一班', '三班', '四班']}) pd.merge(x,y,how="left")
結(jié)果如下:
concat
concat函數(shù)既可以用于橫向拼接,也可以用于縱向拼接。
縱向拼接
x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age']) y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age']) z = pd.concat([x,y],axis=0) z
結(jié)果如下:
橫向拼接
x = pd.DataFrame({'姓名': ['張三', '李四', '王五'], '班級': ['一班', '二班', '三班']}) y = pd.DataFrame({'專業(yè)': ['統(tǒng)計學(xué)', '計算機', '繪畫'], '班級': ['一班', '三班', '四班']}) z = pd.concat([x,y],axis=1) z
結(jié)果如下:
append
append主要用于縱向追加數(shù)據(jù)。
x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age']) y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age']) x.append(y)
結(jié)果如下:
combine
conbine可以通過使用函數(shù),把兩個DataFrame按列進行組合。
x = pd.DataFrame({"A":[3,4],"B":[1,4]}) y = pd.DataFrame({"A":[1,2],"B":[5,6]}) x.combine(y,lambda a,b:np.where(a>b,a,b))
結(jié)果如下:
注:上述函數(shù),用于返回對應(yīng)位置上的最大值。
到此這篇關(guān)于Python Pandas中合并數(shù)據(jù)的5個函數(shù)使用詳解的文章就介紹到這了,更多相關(guān)Python Pandas合并數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python稀疏矩陣及參數(shù)保存代碼實現(xiàn)
這篇文章主要介紹了Python稀疏矩陣及參數(shù)保存代碼實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04使用python寫的opencv實時監(jiān)測和解析二維碼和條形碼
這篇文章主要介紹了使用python寫的opencv實時監(jiān)測和解析二維碼和條形碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08selenium設(shè)置瀏覽器為headless無頭模式(Chrome和Firefox)
這篇文章主要介紹了selenium設(shè)置瀏覽器為headless無頭模式(Chrome和Firefox),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Python實現(xiàn)的多項式擬合功能示例【基于matplotlib】
這篇文章主要介紹了Python實現(xiàn)的多項式擬合功能,結(jié)合實例形式分析了Python基于matplotlib模塊進行數(shù)值運算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-05-05Python數(shù)據(jù)可視化之用Matplotlib繪制常用圖形
Matplotlib能夠繪制折線圖、散點圖、柱狀圖、直方圖、餅圖. 我們需要知道不同的統(tǒng)計圖的意義,以此來決定選擇哪種統(tǒng)計圖來呈現(xiàn)我們的數(shù)據(jù),今天就帶大家詳細(xì)了解如何繪制這些常用圖形,需要的朋友可以參考下2021-06-06Python實現(xiàn)簡單圖像縮放與旋轉(zhuǎn)
大家好,本篇文章主要講的是Python實現(xiàn)簡單圖像縮放與旋轉(zhuǎn),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01