最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pandas數(shù)據(jù)的合并concat()和merge()方式

 更新時間:2025年08月02日 14:57:16   作者:藍小白1024  
Pandas中concat沿軸合并數(shù)據(jù)框(行或列),merge基于鍵連接(內/外/左/右),concat用于縱向或橫向拼接,merge用于關聯(lián)數(shù)據(jù),如合并訂單與客戶信息
import pandas as pd
  • 軸向連接(concatenation): pd.concat() 可以沿一個軸將多個DataFrame對象連接在一起, 形成一個新的Dataframe對象
  • 融合(merging):pd.merge()方法可以根據(jù)一個或多個鍵將不同DataFrame中的行連接起來。

concat() 軸向連接

concat() 函數(shù)可以將數(shù)據(jù)根據(jù)不同的軸作進行合并

pd.concat(objs, axis=0, join='outer')
  • objs: series、dataframe或者是panel構成的序列l(wèi)ist
  • axis: 需要合并鏈接的軸,0是行,1是列,默認是0
  • join:連接的方式 inner,或者outer,默認是outer

準備數(shù)據(jù)

dict1={
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
    'C': ['C0', 'C1', 'C2', 'C3']}
df1=pd.DataFrame(dict1)
print(df1)

dict2={
    'B': ['B0', 'B1', 'B2', 'B3'],
    'C': ['C0', 'C1', 'C2', 'C3'],
    'D': ['D0', 'D1', 'D2', 'D3']}
df2=pd.DataFrame(dict2)
print(df2)

合并

join的值 inner ,得到的是兩表的交集,如果是outer,得到的是兩表的并集

(1) join='outer',axis=0

  • 當join=‘outer’,axis參數(shù)為0時,列進行并集處理,縱向表拼接,缺失值由NaN填充,并且會保留原有數(shù)據(jù)的行索引
pd.concat([df1, df2], axis=0, join='outer', sort=True) # 我沒加 sort=True 會報一個警告

ABCD
0A0B0C0NaN
1A1B1C1NaN
2A2B2C2NaN
3A3B3C3NaN
0NaNB0C0D0
1NaNB1C1D1
2NaNB2C2D2
3NaNB3C3D3
  • 如果兩個表的index都沒有實際含義, 使用ignore_index參數(shù)置為 true, 重新生成一個新的index
pd.concat([df1,df2],axis=0,join='outer',ignore_index=True, sort=True) # 我沒加 sort=True 會報一個警告
ABCD
0A0B0C0NaN
1A1B1C1NaN
2A2B2C2NaN
3A3B3C3NaN
4NaNB0C0D0
5NaNB1C1D1
6NaNB2C2D2
7NaNB3C3D3

(2)join='outer',axis=1

  • 當join=‘outer’,axis參數(shù)為1時,行進行并集處理,橫向表拼接,缺失值由NaN填充

pd.concat([df1,df2],axis=1,join='outer', sort=True) # 我沒加 sort=True 會報一個警告
ABCBCD
0A0B0C0B0C0D0
1A1B1C1B1C1D1
2A2B2C2B2C2D2
3A3B3C3B3C3D3

(3) join=inner, axis=0

pd.concat([df1,df2],axis=0,join='inner',ignore_index=True)

BC
0B0C0
1B1C1
2B2C2
3B3C3
4B0C0
5B1C1
6B2C2
7B3C3

merge() 融合

merge(left, right, how='inner', on=None)

參數(shù)介紹

  • left和right, 兩個要合并的DataFrame(對應的左連接和右連接)
  • how: 連接的方式, 有inner(內連接)、left(左連接)、right(右連接)、outer(外連接), 默認為 inner
  • on: 指的是用于連接的列索引名稱, 必須存在于左右兩個DataFrame中, 如果沒有指定且其他參數(shù)也沒有指定,則兩個DataFrame列名交集作為連接鍵
import pandas as pd
left = pd.DataFrame({'key':['a','b','b','d'],'data1':range(4)})
print(left)

right = pd.DataFrame({'key':['a','b','c'],'data2':range(3)})
print(right)
  key  data1
0   a      0
1   b      1
2   b      2
3   d      3
  key  data2
0   a      0
1   b      1
2   c      2

inner(內連接)

  • merge()默認做inner連接,并且使用兩個DataFrame的列名交集(key)作為連接鍵,同樣,最終連接的數(shù)據(jù)也是兩個DataFramekey列數(shù)據(jù)的交集

pd.merge(left,right)
keydata1data2
0a00
1b11
2b21

outer (外連接)

  • 當merge()做outer連接時最終連接的數(shù)據(jù)是兩個DataFramekey列數(shù)據(jù)的并集,缺失的內容由NaN填充
pd.merge(left,right,on=['key'],how='outer')

keydata1data2
0a0.00.0
1b1.01.0
2b2.01.0
3d3.0NaN
4cNaN2.0

left(左連接)

  • 當merge()做left連接時,最終連接的數(shù)據(jù)將以left數(shù)據(jù)的鏈接建為準合并兩個數(shù)據(jù)的列數(shù)據(jù),缺失的內容由NaN填充

pd.merge(left,right,on=['key'],how='left')
keydata1data2
0a00.0
1b11.0
2b21.0
3d3NaN

right (右連接)

  • 當merge()做right連接時,最終連接的數(shù)據(jù)將以right數(shù)據(jù)的鏈接建為準合并兩個數(shù)據(jù)的列數(shù)據(jù),缺失的內容由NaN填充
pd.merge(left,right,on=['key'],how='right')
keydata1data2
0a0.00
1b1.01
2b2.01
3cNaN2

應用場景

例如:

  • 現(xiàn)在有兩張表格分別存儲了9月和10月份的成交信息,
  • 那么這個時候我們就可以使用concat( )將兩個表沿著0軸合并

例如:

  • 現(xiàn)在有兩張表格,一個是成交信息,包含訂單號、金額、客戶ID等信息;
  • 第二個是客戶信息,包含客戶ID、姓名、電話號等信息,那么這個時候我們就可以使用merge()根據(jù)客戶ID將兩個表合并成一個完整的表

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python中去掉字段中的空格的常用方法

    Python中去掉字段中的空格的常用方法

    在 Python 中,去掉字符串中的空格主要取決于你想去掉所有的空格(變成 8Gbps),還是僅去掉首尾的空格(變成 32 Gbps),或者是把空格換成下劃線(變成 8_Gbps),本文給大家匯總了Python中去掉字段中的空格的常用方法,需要的朋友可以參考下
    2025-12-12
  • python簡單實現(xiàn)獲取當前時間

    python簡單實現(xiàn)獲取當前時間

    最近項目中經常需要python去取當前的時間,雖然不是很難,但是老是忘記,用一次丟一次,為了能夠更好的記住,我今天特意寫下python 當前時間這篇文章,如果你覺的對你有用的話,可以收藏下。
    2016-08-08
  • python實現(xiàn)整數(shù)序列求和

    python實現(xiàn)整數(shù)序列求和

    這篇文章主要介紹了python實現(xiàn)整數(shù)序列求和,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python3中sorted函數(shù)里cmp參數(shù)改變詳解

    python3中sorted函數(shù)里cmp參數(shù)改變詳解

    在本篇文章里小編給大家整理的是關于python3中sorted函數(shù)里關于cmp這一參數(shù)的改變相關內容,需要的朋友們可以學習下。
    2020-03-03
  • Django CSRF認證的幾種解決方案

    Django CSRF認證的幾種解決方案

    這篇文章主要介紹了Django CSRF認證的幾種解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 使用Python批量將Word轉PDF的實現(xiàn)技巧

    使用Python批量將Word轉PDF的實現(xiàn)技巧

    我們在實際工作中很容易發(fā)現(xiàn),有些時候我們需要將Word文檔轉換為PDF文檔,如果只是一個文件,我們也只是需要通過Word提供的轉換為PDF文檔的功能就可以實現(xiàn)了,那么多個文檔如何實現(xiàn)呢,所以本文給大家介紹了Python批量將Word轉PDF的實現(xiàn)技巧,需要的朋友可以參考下
    2025-08-08
  • Python可視化tkinter詳解

    Python可視化tkinter詳解

    這篇文章主要介紹了Python可視化tkinter詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • python anaconda 安裝 環(huán)境變量 升級 以及特殊庫安裝的方法

    python anaconda 安裝 環(huán)境變量 升級 以及特殊庫安裝的方法

    下面小編就為大家?guī)硪黄猵ython anaconda 安裝 環(huán)境變量 升級 以及特殊庫安裝的方法。
    2017-06-06
  • Pyecharts地圖顯示不完成問題解決方案

    Pyecharts地圖顯示不完成問題解決方案

    這篇文章主要介紹了Pyecharts地圖顯示不完成問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • pycharm修改界面主題顏色的方法

    pycharm修改界面主題顏色的方法

    今天小編就為大家分享一篇pycharm修改界面主題顏色的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

宜州市| 泾源县| 墨脱县| 遂溪县| 乌鲁木齐县| 太康县| 新宾| 太白县| 永泰县| 舞阳县| 丰原市| 太仓市| 乌兰浩特市| 光泽县| 衡阳县| 古蔺县| 梓潼县| 长汀县| 突泉县| 阿合奇县| 惠水县| 延津县| 建瓯市| 新营市| 青州市| 台南县| 武冈市| 博客| 库伦旗| 衡南县| 宽甸| 萍乡市| 北宁市| 宝丰县| 磐安县| 化州市| 安西县| 潍坊市| 六枝特区| 宁安市| 靖西县|