0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

pandas中合并數(shù)據(jù)的5個(gè)函數(shù)

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-31 11:11 ? 次閱讀

今天借著這個(gè)機(jī)會,就為大家盤點(diǎn)一下pandas中合并數(shù)據(jù)的5個(gè)函數(shù)。

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ù)一個(gè)或多個(gè)鍵將不同的DatFrame連接起來。該函數(shù)的典型應(yīng)用場景是,針對同一個(gè)主鍵存在兩張不同字段的表,根據(jù)主鍵整合到一張表里面。

  • 可以指定不同的how參數(shù),表示連接方式,有inner內(nèi)連、left左連、right右連、outer全連,默認(rèn)為inner;
x = pd.DataFrame({'姓名': ['張三', '李四', '王五'],
'班級': ['一班', '二班', '三班']})
y = pd.DataFrame({'專業(yè)': ['統(tǒng)計(jì)學(xué)', '計(jì)算機(jī)', '繪畫'],
'班級': ['一班', '三班', '四班']})

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)計(jì)學(xué)', '計(jì)算機(jī)', '繪畫'],
'班級': ['一班', '三班', '四班']})
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ù),把兩個(gè)DataFrame按列進(jìn)行組合。

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)位置上的最大值。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 索引
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    10456
收藏 人收藏

    評論

    相關(guān)推薦

    Pandas的四種繪圖函數(shù)

    數(shù)據(jù)可視化(三):Pandas的繪圖函數(shù)
    發(fā)表于 09-04 09:04

    從Excel到Python-最常用的36個(gè)Pandas函數(shù)

    本文涉及pandas最常用的36個(gè)函數(shù),通過這些函數(shù)介紹如何完成數(shù)據(jù)生成和導(dǎo)入、數(shù)據(jù)清洗、預(yù)處理
    的頭像 發(fā)表于 12-10 21:31 ?664次閱讀

    Python工具pandas篩選數(shù)據(jù)的15個(gè)常用技巧

    pandas是Python數(shù)據(jù)分析必備工具,它有強(qiáng)大的數(shù)據(jù)清洗能力,往往能用非常少的代碼實(shí)現(xiàn)較復(fù)雜的數(shù)據(jù)處理 今天,總結(jié)了pandas篩選
    的頭像 發(fā)表于 03-30 10:44 ?2840次閱讀
    Python工具<b class='flag-5'>pandas</b>篩選<b class='flag-5'>數(shù)據(jù)</b>的15<b class='flag-5'>個(gè)</b>常用技巧

    盤點(diǎn)Pandas的100個(gè)常用函數(shù)

    分析過程,必然要做一些數(shù)據(jù)的統(tǒng)計(jì)匯總工作,那么對于這一塊的數(shù)據(jù)運(yùn)算有哪些可用的函數(shù)可以幫助到我們呢?具體看如下幾張表。 import pandas
    的頭像 發(fā)表于 04-01 09:52 ?2730次閱讀
    盤點(diǎn)<b class='flag-5'>Pandas</b>的100<b class='flag-5'>個(gè)</b>常用<b class='flag-5'>函數(shù)</b>

    數(shù)據(jù)處理pandas的groupby小技巧

    pandas的groupby是數(shù)據(jù)處理中一個(gè)非常強(qiáng)大的功能。雖然很多同學(xué)已已經(jīng)非常熟悉了,但有些小技巧還是要和大家普及一下的。為了給大家演示,我們采用一個(gè)公開的
    的頭像 發(fā)表于 04-09 11:34 ?2335次閱讀

    分享pandas超級好用的str矢量化字符串函數(shù)

    數(shù)據(jù)清洗方法,會讓你的能力調(diào)高100倍。 本文基于此, 講述pandas超級好用的str矢量化字符串函數(shù) ,學(xué)了之后,瞬間感覺自己的數(shù)據(jù)
    的頭像 發(fā)表于 04-13 10:37 ?2531次閱讀
    分享<b class='flag-5'>pandas</b><b class='flag-5'>中</b>超級好用的str矢量化字符串<b class='flag-5'>函數(shù)</b>

    解讀12 種 Numpy 和 Pandas 高效函數(shù)技巧

    本文分享給大家 12 種 Numpy 和 Pandas 函數(shù),這些高效的函數(shù)會令數(shù)據(jù)分析更為容易、便捷。最后,讀者也可以在 GitHub 項(xiàng)目中找到本文所用代碼的 Jupyter No
    的頭像 發(fā)表于 06-29 17:05 ?1464次閱讀

    5個(gè)必須知道的Pandas數(shù)據(jù)合并技巧

    concat是pandas中專門用于數(shù)據(jù)連接合并函數(shù),功能非常強(qiáng)大,支持縱向合并和橫向合并,默
    的頭像 發(fā)表于 04-13 10:35 ?2272次閱讀

    Pandas中使用Merge、Join、Concat合并數(shù)據(jù)的效率對比

    Pandas 中有很多種方法可以進(jìn)行DF的合并。
    的頭像 發(fā)表于 10-25 14:24 ?890次閱讀

    Pandas 50個(gè)高級、高頻操作

    數(shù)據(jù)分析和數(shù)據(jù)建模的過程需要對數(shù)據(jù)進(jìn)行清洗和整理等工作,有時(shí)需要對數(shù)據(jù)增刪字段。下面為大家介紹Pan
    的頭像 發(fā)表于 04-24 11:00 ?813次閱讀

    超強(qiáng)圖解Pandas,建議收藏

    Pandas數(shù)據(jù)挖掘常見的工具,掌握使用過程函數(shù)是非常重要的。本文將借助可視化的過程,講解Pandas的各種操作。
    的頭像 發(fā)表于 08-29 15:15 ?580次閱讀
    超強(qiáng)圖解<b class='flag-5'>Pandas</b>,建議收藏

    如何使用Python和pandas庫讀取、寫入文件

    = pd.read_excel(' data .xlsx') 此代碼,我們首先導(dǎo)入 pandas 庫并將其重命名為 pd。使用 pd.read_excel() 函數(shù)讀取 'data.xlsx' 文件并將其存儲在
    的頭像 發(fā)表于 09-11 17:52 ?1132次閱讀

    盤點(diǎn)66個(gè)Pandas函數(shù)合集

    今天我們重新盤點(diǎn)66個(gè)Pandas函數(shù)合集,包括數(shù)據(jù)預(yù)覽、數(shù)值數(shù)據(jù)操作、文本數(shù)據(jù)操作、行/列操作
    的頭像 發(fā)表于 10-30 09:58 ?1357次閱讀
    盤點(diǎn)66<b class='flag-5'>個(gè)</b><b class='flag-5'>Pandas</b><b class='flag-5'>函數(shù)</b>合集

    Pandas:Python中最好的數(shù)據(jù)分析工具

    使用 Pandas 分析數(shù)據(jù)的能力。 常見的比如說: 在處理貨幣值時(shí)使用貨幣符號。例如,如果您的數(shù)據(jù)包含值 25.00,您不會立即知道該值是人民幣、美元、英鎊還是其他某種貨幣。 百分比是另一個(gè)
    的頭像 發(fā)表于 10-31 10:47 ?443次閱讀
    <b class='flag-5'>Pandas</b>:Python中最好的<b class='flag-5'>數(shù)據(jù)</b>分析工具

    Pandas函數(shù)的三個(gè)接口介紹

    本文主要介紹pandas.DataFrame的三個(gè)接口,即assign、eval、query,分別用于賦值、查詢和執(zhí)行計(jì)算。 01 assign 在數(shù)據(jù)分析處理,賦值產(chǎn)生新的列是非常
    的頭像 發(fā)表于 11-01 16:38 ?432次閱讀
    <b class='flag-5'>Pandas</b><b class='flag-5'>函數(shù)</b>的三<b class='flag-5'>個(gè)</b>接口介紹