今天借著這個機會,就為大家盤點一下pandas中合并數據的5個函數。
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)
結果如下:
索引不一致
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)
結果如下:
merge
merge是基于指定列的橫向拼接,該函數類似于關系型數據庫的連接方式,可以根據一個或多個鍵將不同的DatFrame連接起來。該函數的典型應用場景是,針對同一個主鍵存在兩張不同字段的表,根據主鍵整合到一張表里面。
x = pd.DataFrame({'姓名': ['張三', '李四', '王五'],
'班級': ['一班', '二班', '三班']})
y = pd.DataFrame({'專業': ['統計學', '計算機', '繪畫'],
'班級': ['一班', '三班', '四班']})
pd.merge(x,y,how="left")
結果如下:
concat
concat函數既可以用于橫向拼接,也可以用于縱向拼接。
縱向拼接
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
結果如下:
橫向拼接
x = pd.DataFrame({'姓名': ['張三', '李四', '王五'],
'班級': ['一班', '二班', '三班']})
y = pd.DataFrame({'專業': ['統計學', '計算機', '繪畫'],
'班級': ['一班', '三班', '四班']})
z = pd.concat([x,y],axis=1)
z
結果如下:
append
append主要用于縱向追加數據。
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)
結果如下:
combine
conbine可以通過使用函數,把兩個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))
結果如下:
注:上述函數,用于返回對應位置上的最大值。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據
+關注
關注
8文章
6542瀏覽量
87806 -
函數
+關注
關注
3文章
4117瀏覽量
61467 -
索引
+關注
關注
0文章
59瀏覽量
10422
發布評論請先 登錄
相關推薦
在PyODPS DataFrame自定義函數中使用pandas、scipy和scikit-learn
pandas 的 map 和 apply 方法,也提供了 MapReduce API 來擴展 pandas 語法以適應大數據環境。PyODPS 的自定義函數是序列化到 MaxComp
發表于 05-17 19:48
pandas是什么?
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔文章目錄前言一、pandas是什么?二、使用步驟1.引入庫2.讀入數據總結前言提示:這里可以添加本文要記錄的大概內容:例如:隨著
發表于 01-12 07:53
pandas的快速入門介紹
pandas 是基于NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型
發表于 06-03 08:00
?0次下載
從Excel到Python-最常用的36個Pandas函數
本文涉及pandas最常用的36個函數,通過這些函數介紹如何完成數據生成和導入、數據清洗、預處理,以及最常見的
盤點Pandas的100個常用函數
分析過程中,必然要做一些數據的統計匯總工作,那么對于這一塊的數據運算有哪些可用的函數可以幫助到我們呢?具體看如下幾張表。 import pandas as pd import nump
解讀12 種 Numpy 和 Pandas 高效函數技巧
本文分享給大家 12 種 Numpy 和 Pandas 函數,這些高效的函數會令數據分析更為容易、便捷。最后,讀者也可以在 GitHub 項目中找到本文所用代碼的 Jupyter No
Python Pandas如何來管理結構化數據
和DataFrame)。 ? 在人工智能領域,Pandas經常用于機器學習和深度學習過程的預處理步驟。Pandas通過提供數據清理、重塑、合并和聚合,可以將原始
如何使用Python和pandas庫讀取、寫入文件
= pd.read_excel(' data .xlsx') 此代碼中,我們首先導入 pandas 庫并將其重命名為 pd。使用 pd.read_excel() 函數讀取 'data.xlsx' 文件并將其存儲
評論