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

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

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

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

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-01 16:38 ? 次閱讀

本文主要介紹pandas.DataFrame的三個(gè)接口,即assign、eval、query,分別用于賦值、查詢(xún)和執(zhí)行計(jì)算。

01 assign

在數(shù)據(jù)分析處理中,賦值產(chǎn)生新的列是非常高頻的應(yīng)用場(chǎng)景,簡(jiǎn)單的可能是賦值常數(shù)列、復(fù)雜的可能是由一列產(chǎn)生另外一個(gè)一列,對(duì)于這種需求pandas有多種方法實(shí)現(xiàn),但個(gè)人唯獨(dú)喜歡assign,用起來(lái)優(yōu)雅高效。

圖片

例如,對(duì)于以上簡(jiǎn)單的DataFrame數(shù)據(jù)框,需要?jiǎng)?chuàng)建一個(gè)新的列C,一般來(lái)說(shuō)可能有3種創(chuàng)建需求:常數(shù)列、指定序列數(shù)據(jù)以及由已知列通過(guò)一定計(jì)算產(chǎn)生。那么應(yīng)用assign完成這3個(gè)需求分別是:圖片

注意事項(xiàng):

  1. assign賦值新列時(shí),一般用新列名=表達(dá)式的形式,其中新列名為變量的形式,所以不加引號(hào)(加引號(hào)時(shí)意味著是字符串);
  2. assign返回創(chuàng)建了新列的dataframe,所以需要用新的dataframe對(duì)象接收返回值;
  3. assign不僅可用于創(chuàng)建新的列,也可用于更新已有列,此時(shí)創(chuàng)建的新列會(huì)覆蓋原有列。

02 eval

實(shí)際上,eval是一個(gè)Python基礎(chǔ)函數(shù),用于執(zhí)行字符串形式的計(jì)算表達(dá)式,例如以下簡(jiǎn)單實(shí)例:

圖片

那么,eval作為pandas.dataframe數(shù)據(jù)結(jié)構(gòu)的一個(gè)接口,執(zhí)行功能應(yīng)該也與執(zhí)行計(jì)算有關(guān)。另一方面,pandas中實(shí)際上是內(nèi)置了大量的SQL類(lèi)語(yǔ)法(包括下面要介紹的query也是),而eval的功能正是執(zhí)行類(lèi)似SQL語(yǔ)法中的計(jì)算,對(duì)已知列執(zhí)行一定的計(jì)算時(shí)可用eval完成。例如,仍以前述由A和B列產(chǎn)生C列為例,應(yīng)用eval的方法為:

圖片

了解SQL語(yǔ)法的都知道可用@前綴修飾自定義變量,這一用法在這里的eval中也得以保留,此時(shí)可非常方便的引用外部變量。當(dāng)然,eval中的計(jì)算表達(dá)式本身屬于字符串形式,所以自然也可以用Python的通用字符串引用方法。如下圖所示。

圖片

注意事項(xiàng):

  1. eval支持接收一個(gè)inplace參數(shù)控制原地創(chuàng)建新變量或者返回新的dataframe;也支持僅用表達(dá)式而不設(shè)置新變量名,此時(shí)返回?cái)?shù)據(jù)為series格式,如下圖所示;
  2. eval表達(dá)式中也支持調(diào)用函數(shù)執(zhí)行復(fù)雜計(jì)算。

圖片

03 query

這應(yīng)該是最近使用最為頻繁的一個(gè)接口了,pandas中雖然也提供了多種數(shù)據(jù)篩選方式,例如loc中增加表達(dá)式、或者直接用df[df[]……]等等,但總覺(jué)得用起來(lái)不夠優(yōu)雅,尤其是要寫(xiě)兩遍df以及[]等等,此時(shí)如果靈活運(yùn)用query函數(shù),那么會(huì)便捷不少。尤其是query也是類(lèi)似于SQL中where關(guān)鍵字的語(yǔ)法邏輯,用起來(lái)會(huì)很順滑。

圖片

例如對(duì)于以上dataframe,需要根據(jù)不同場(chǎng)景查詢(xún)滿(mǎn)足條件的記錄,調(diào)用query的實(shí)現(xiàn)方式為:

圖片

當(dāng)然,之所以說(shuō)query中支持類(lèi)似SQL的語(yǔ)法,是因?yàn)槠湟灿袃蓚€(gè)SQL中標(biāo)志性的設(shè)計(jì),其一是@引用自定義外部變量,其二是對(duì)于特殊的列名(例如包含空格的字符)可以用反引號(hào)``加以修飾引用。例如,下述例子中C C列中有個(gè)空格,直接用于字符串表達(dá)式會(huì)存在報(bào)錯(cuò),此時(shí)可使用反引號(hào)加以修飾,同時(shí)查詢(xún)條件中應(yīng)用了@修飾符引用外部變量。當(dāng)然,與eval中類(lèi)似,這里當(dāng)然也可以用f字符串修飾引用。

圖片

注意事項(xiàng):

  1. query中也支持inplace參數(shù),控制是否將查詢(xún)過(guò)濾條件作用于dataframe本身;
  2. 與eval類(lèi)似,query中也支持引用外部函數(shù)。
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8691

    瀏覽量

    151784
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    585

    瀏覽量

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

    關(guān)注

    3

    文章

    4345

    瀏覽量

    62913
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    誰(shuí)會(huì)用這三個(gè)函數(shù)?。〝?shù)學(xué)類(lèi)的)

    三個(gè)函數(shù)分別為pow();平方函數(shù)sqrt();開(kāi)方函數(shù)acos();反余弦函數(shù)三個(gè)
    發(fā)表于 05-31 13:49

    在PyODPS DataFrame自定義函數(shù)中使用pandas、scipy和scikit-learn

    的,MaxCompute 的 Python 環(huán)境只包含了 numpy 這一個(gè)方包,用戶(hù)常常問(wèn)的問(wèn)題是,如何在自定義函數(shù)里使用 pandas、scipy 或者 scikit-lear
    發(fā)表于 05-17 19:48

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

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

    pandas是什么

    由若干云滴組成。其中每個(gè)云滴是確定的點(diǎn),構(gòu)成一個(gè)負(fù)責(zé)不確定的云。對(duì)于一個(gè)云的描述飽含三個(gè)元素,記作:(Ex,En,He)?;靖拍睿篍x,云滴在論域空間的期望。En,熵。用來(lái)表示云團(tuán)的不確定性程度。...
    發(fā)表于 08-17 06:58

    LabVIEW的三個(gè)實(shí)例資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LabVIEW的三個(gè)實(shí)例資料免費(fèi)下載包括了:函數(shù)發(fā)生器,頻譜分析,示波器和濾波器。
    發(fā)表于 11-04 08:00 ?0次下載
    LabVIEW的<b class='flag-5'>三個(gè)</b>實(shí)例資料免費(fèi)下載

    pandas的快速入門(mén)介紹

    pandas 是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas 納入了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。pandas提供了大量能使我們
    發(fā)表于 06-03 08:00 ?0次下載
    <b class='flag-5'>pandas</b>的快速入門(mén)<b class='flag-5'>介紹</b>

    技嘉 RTX 3060 Ti:三個(gè)HDMI、三個(gè)DisplayPort、 8+6針輔助供電接口

    是配備了六個(gè)輸出接口,包括三個(gè)HDMI、三個(gè)DisplayPort,相比之下公版和幾乎所有非公版都是一個(gè)HDMI、
    的頭像 發(fā)表于 11-24 09:38 ?9807次閱讀

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

    本文涉及pandas最常用的36個(gè)函數(shù),通過(guò)這些函數(shù)介紹如何完成數(shù)據(jù)生成和導(dǎo)入、數(shù)據(jù)清洗、預(yù)處理,以及最常見(jiàn)的數(shù)據(jù)分類(lèi),數(shù)據(jù)篩選,分類(lèi)...
    的頭像 發(fā)表于 12-10 21:31 ?715次閱讀

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

    經(jīng)過(guò)一段時(shí)間的整理,本期將分享我認(rèn)為比較常規(guī)的100個(gè)實(shí)用函數(shù),這些函數(shù)大致可以分為六類(lèi),分別是統(tǒng)計(jì)匯總函數(shù)、數(shù)據(jù)清洗函數(shù)、數(shù)據(jù)篩選、繪圖與
    的頭像 發(fā)表于 04-01 09:52 ?2925次閱讀
    盤(pán)點(diǎn)<b class='flag-5'>Pandas</b>的100<b class='flag-5'>個(gè)</b>常用<b class='flag-5'>函數(shù)</b>

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

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

    函數(shù)接口的應(yīng)用知識(shí)點(diǎn)

    概述 函數(shù)接口將分為三個(gè)篇章來(lái)為大家介紹: (應(yīng)用篇一)(1)函數(shù)接口的來(lái)源,(2)Lamb
    的頭像 發(fā)表于 10-13 11:32 ?675次閱讀
    <b class='flag-5'>函數(shù)</b>式<b class='flag-5'>接口</b>的應(yīng)用知識(shí)點(diǎn)

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

    今天我們重新盤(pán)點(diǎn)66個(gè)Pandas函數(shù)合集,包括數(shù)據(jù)預(yù)覽、數(shù)值數(shù)據(jù)操作、文本數(shù)據(jù)操作、行/列操作等等,涉及“ 數(shù)據(jù)清洗 ”的方方面面。 Pandas 是基于NumPy的一種工具,該工具
    的頭像 發(fā)表于 10-30 09:58 ?1473次閱讀
    盤(pán)點(diǎn)66<b class='flag-5'>個(gè)</b><b class='flag-5'>Pandas</b><b class='flag-5'>函數(shù)</b>合集

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

    今天借著這個(gè)機(jī)會(huì),就為大家盤(pán)點(diǎn)一下pandas中合并數(shù)據(jù)的5個(gè)函數(shù)。 join join是基于索引的橫向拼接,如果索引一致,直接橫向拼接。如果索引不一致,則會(huì)用Nan值填充。 索引一致 x
    的頭像 發(fā)表于 10-31 11:11 ?829次閱讀
    <b class='flag-5'>pandas</b>中合并數(shù)據(jù)的5<b class='flag-5'>個(gè)</b><b class='flag-5'>函數(shù)</b>

    sumif函數(shù)三個(gè)條件怎么填

    函數(shù)包含三個(gè)條件,我們可以使用SUMIF函數(shù)的數(shù)組形式來(lái)完成。 首先,讓我們了解一下SUMIF函數(shù)的基本結(jié)構(gòu): SUMIF(range, criteria, [sum_range])
    的頭像 發(fā)表于 11-30 16:38 ?5611次閱讀

    if函數(shù)三個(gè)條件怎么填

    IF函數(shù)是Excel中最常用的函數(shù)之一,它根據(jù)一個(gè)邏輯條件的返回結(jié)果來(lái)決定應(yīng)該執(zhí)行哪一個(gè)動(dòng)作。在Excel中使用IF函數(shù)可以實(shí)現(xiàn)復(fù)雜的邏輯判
    的頭像 發(fā)表于 12-03 10:28 ?3667次閱讀