這篇文章主要介紹“DataFrame操作方法有哪些”,在日常操作中,相信很多人在DataFrame操作方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”DataFrame操作方法有哪些”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、蘭西網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為蘭西等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
Pandas提供了各種各樣的DataFrame操作,但是其中許多操作很復(fù)雜,而且似乎不太平易近人。ame操作方法,它們涵蓋了數(shù)據(jù)科學(xué)家需要知道的幾乎所有操作功能。每種方法都將包括說明,可視化,代碼以及記住它的技巧。
Pivot
透視表將創(chuàng)建一個(gè)新的“透視表”,該透視表將數(shù)據(jù)中的現(xiàn)有列投影為新表的元素,包括索引,列和值。初始DataFrame中將成為索引的列,并且這些列顯示為唯一值,而這兩列的組合將顯示為值。這意味著Pivot無(wú)法處理重復(fù)的值。
旋轉(zhuǎn)名為df 的DataFrame的代碼 如下:
記住:Pivot——是在數(shù)據(jù)處理領(lǐng)域之外——圍繞某種對(duì)象的轉(zhuǎn)向。在體育運(yùn)動(dòng)中,人們可以繞著腳“旋轉(zhuǎn)”旋轉(zhuǎn):大熊貓的旋轉(zhuǎn)類似于。原始DataFrame的狀態(tài)圍繞DataFrame的中心元素旋轉(zhuǎn)到一個(gè)新元素。有些元素實(shí)際上是在旋轉(zhuǎn)或變換的(例如,列“ bar ”),因此很重要。
Melt
Melt可以被認(rèn)為是“不可透視的”,因?yàn)樗鼘⒒诰仃嚨臄?shù)據(jù)(具有二維)轉(zhuǎn)換為基于列表的數(shù)據(jù)(列表示值,行表示唯一的數(shù)據(jù)點(diǎn)),而樞軸則相反??紤]一個(gè)二維矩陣,其一維為“ B ”和“ C ”(列名),另一維為“ a”,“ b ”和“ c ”(行索引)。
我們選擇一個(gè)ID,一個(gè)維度和一個(gè)包含值的列/列。包含值的列將轉(zhuǎn)換為兩列:一列用于變量(值列的名稱),另一列用于值(變量中包含的數(shù)字)。
結(jié)果是ID列的值(a,b,c)和值列(B,C)及其對(duì)應(yīng)值的每種組合,以列表格式組織。
可以像在DataFrame df上一樣執(zhí)行Mels操作 :
記住:像蠟燭一樣融化(Melt)就是將凝固的復(fù)合物體變成幾個(gè)更小的單個(gè)元素(蠟滴)。融合二維DataFrame可以解壓縮其固化的結(jié)構(gòu)并將其片段記錄為列表中的各個(gè)條目。
在DataFrame df中Explode列“ A ” 非常簡(jiǎn)單:
要記住:Explode某物會(huì)釋放其所有內(nèi)部?jī)?nèi)容-Explode列表會(huì)分隔其元素。
Stack
堆疊采用任意大小的DataFrame,并將列“堆疊”為現(xiàn)有索引的子索引。因此,所得的DataFrame僅具有一列和兩級(jí)索引。
堆疊名為df的表就像df.stack()一樣簡(jiǎn)單 。
為了訪問狗的身高值,只需兩次調(diào)用基于索引的檢索,例如 df.loc ['dog']。loc ['height']。
要記住:從外觀上看,堆棧采用表的二維性并將列堆棧為多級(jí)索引。
Unstack
取消堆疊將獲取多索引DataFrame并對(duì)其進(jìn)行堆疊,將指定級(jí)別的索引轉(zhuǎn)換為具有相應(yīng)值的新DataFrame的列。在表上調(diào)用堆棧后再調(diào)用堆棧不會(huì)更改該堆棧(原因是存在“ 0 ”)。
堆疊中的參數(shù)是其級(jí)別。在列表索引中,索引為-1將返回最后一個(gè)元素。這與水平相同。級(jí)別-1表示將取消堆疊最后一個(gè)索引級(jí)別(最右邊的一個(gè))。作為另一個(gè)示例,當(dāng)級(jí)別設(shè)置為0(第一個(gè)索引級(jí)別)時(shí),其中的值將成為列,而隨后的索引級(jí)別(第二個(gè)索引級(jí)別)將成為轉(zhuǎn)換后的DataFrame的索引。
可以按照與堆疊相同的方式執(zhí)行堆疊,但是要使用level參數(shù): df.unstack(level = -1)。
Merge
合并兩個(gè)DataFrame是在共享的“鍵”之間按列(水平)組合它們。此鍵允許將表合并,即使它們的排序方式不一樣。完成的合并DataFrame 默認(rèn)情況下會(huì)將后綴_x 和 _y添加 到value列。
為了合并兩個(gè)DataFrame df1 和 df2 (其中 df1 包含 leftkey, 而 df2 包含 rightkey),請(qǐng)調(diào)用:
合并不是pandas的功能,而是附加到DataFrame。始終假定合并所在的DataFrame是“左表”,在函數(shù)中作為參數(shù)調(diào)用的DataFrame是“右表”,并帶有相應(yīng)的鍵。
默認(rèn)情況下,合并功能執(zhí)行內(nèi)部聯(lián)接:如果每個(gè)DataFrame的鍵名均未列在另一個(gè)鍵中,則該鍵不包含在合并的DataFrame中。另一方面,如果一個(gè)鍵在同一DataFrame中列出兩次,則在合并表中將列出同一鍵的每個(gè)值組合。例如,如果 df1 具有3個(gè)鍵foo 值, 而 df2 具有2個(gè)相同鍵的值,則 在最終DataFrame中將有6個(gè)條目,其中 leftkey = foo 和 rightkey = foo。
記住:合并數(shù)據(jù)幀就像在水平行駛時(shí)合并車道一樣。想象一下,每一列都是高速公路上的一條車道。為了合并,它們必須水平合并。
Join
通常,聯(lián)接比合并更可取,因?yàn)樗哂懈?jiǎn)潔的語(yǔ)法,并且在水平連接兩個(gè)DataFrame時(shí)具有更大的可能性。連接的語(yǔ)法如下:
使用聯(lián)接時(shí),公共鍵列(類似于 合并中的right_on 和 left_on)必須命名為相同的名稱。how參數(shù)是一個(gè)字符串,它表示四種連接 方法之一, 可以合并兩個(gè)DataFrame:
' left ':包括df1的所有元素, 僅當(dāng)其鍵為df1的鍵時(shí)才 包含df2的元素 。否則,df2的合并DataFrame的丟失部分 將被標(biāo)記為NaN。
' right ':' left ',但在另一個(gè)DataFrame上。包括df2的所有元素, 僅當(dāng)其鍵是df2的鍵時(shí)才 包含df1的元素 。
“outer”:包括來自DataFrames所有元素,即使密鑰不存在于其他的-缺少的元素被標(biāo)記為NaN的。
“inner”:僅包含元件的鍵是存在于兩個(gè)數(shù)據(jù)幀鍵(交集)。默認(rèn)合并。
記住:如果您使用過SQL,則單詞“ join”應(yīng)立即與按列添加相聯(lián)系。如果不是,則“ join”和“ merge”在定義方面具有非常相似的含義。
Concat
合并和連接是水平工作,串聯(lián)或簡(jiǎn)稱為concat,而DataFrame是按行(垂直)連接的。例如,考慮使用pandas.concat([df1,df2])串聯(lián)的具有相同列名的 兩個(gè)DataFrame df1 和 df2 :
盡管可以通過將axis參數(shù)設(shè)置為1來使用concat進(jìn)行列式聯(lián)接,但是使用聯(lián)接 會(huì)更容易。
請(qǐng)注意,concat是pandas函數(shù),而不是DataFrame之一。因此,它接受要連接的DataFrame列表。
如果一個(gè)DataFrame的另一列未包含,默認(rèn)情況下將包含該列,缺失值列為NaN。為了防止這種情況,請(qǐng)?zhí)砑右粋€(gè)附加參數(shù)join ='inner',該參數(shù) 只會(huì)串聯(lián)兩個(gè)DataFrame共有的列。
切記:在列表和字符串中,可以串聯(lián)其他項(xiàng)。串聯(lián)是將附加元素附加到現(xiàn)有主體上,而不是添加新信息(就像逐列聯(lián)接一樣)。由于每個(gè)索引/行都是一個(gè)單獨(dú)的項(xiàng)目,因此串聯(lián)將其他項(xiàng)目添加到DataFrame中,這可以看作是行的列表。
Append是組合兩個(gè)DataFrame的另一種方法,但它執(zhí)行的功能與concat相同,效率較低且用途廣泛。
到此,關(guān)于“DataFrame操作方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
文章標(biāo)題:DataFrame操作方法有哪些
網(wǎng)址分享:http://jinyejixie.com/article40/ieppeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)