日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?Pandas中合并數據的5個函數使用詳解_python

作者:黃偉呢 ? 更新時間: 2022-07-01 編程語言

前幾天在一個群里面,看到一位朋友,說到自己的阿里面試,被問了一些關于pandas的使用。其中一個問題是:pandas中合并數據的5中方法

今天借著這個機會,就為大家盤點一下pandas中合并數據的5個函數。但是對于每個函數,我這里不打算詳細說明,具體用法大家可以參考pandas官當文檔。

  • join主要用于基于索引的橫向合并拼接;
  • merge主要用于基于指定列的橫向合并拼接;
  • concat可用于橫向和縱向合并拼接;
  • append主要用于縱向追加;
  • combine可以通過使用函數,把兩個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)

結果如下:

圖片

索引不一致

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連接起來。該函數的典型應用場景是,針對同一個主鍵存在兩張不同字段的表,根據主鍵整合到一張表里面。

可以指定不同的how參數,表示連接方式,有inner內連、left左連、right右連、outer全連,默認為inner;

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))

結果如下:

圖片

注:上述函數,用于返回對應位置上的最大值。

原文鏈接:https://mp.weixin.qq.com/s/Mt_veB6qg7pM_w-ao4J14A

欄目分類
最近更新