您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)Python數(shù)據(jù)分析中寬表是如何重構(gòu)為長表,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
今天,先來了解Pandas封裝的頂層函數(shù)部分,其一:melt()函數(shù),它位于Pandas包的最頂層,結(jié)構(gòu)如下:
Pandas
|
melt()
melt()函數(shù)的原型如下:
frame為list型參數(shù),后面都為position型參數(shù)。前者為通常意義的*args, 后者為 **kwargs.
frame不難猜測為Pandas的二維數(shù)組結(jié)構(gòu)DataFrame,其他參數(shù)含義通過如下幾個例子觀察。
構(gòu)造df 結(jié)構(gòu)如下:
執(zhí)行如下操作:
pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])
結(jié)果如下:
觀察
變化后的df行數(shù)變多了,A列名稱保持不變;
第二列的column名稱變?yōu)関ariable,取值變?yōu)?B 和 C(正好等于melt函數(shù)的第三個參數(shù) value_vars);
第三列名為value,取值為原df的B和C列的值。
再驗證
pd.melt(df2, id_vars=['a'], value_vars=['b', 'c', 'd'])
變化后的結(jié)構(gòu)行數(shù)明顯變更多了,由9行組成,但是列變少了,只有3列。
這里面引出2個概念:
寬表( wide format) :指列數(shù)比較多
長表( long format) :行數(shù)比較多
回頭核對官方給定melt的功能和參數(shù)
注意用詞:unpivot 變化 DataFrame從寬格式到長格式,選擇性地保留標(biāo)示列,其實就是指 id_vars參數(shù)。
以上為兩個最主要的參數(shù),第二個value_vars指需要upivot的列。
思考
melt()函數(shù)的作用,它能將寬表變化為長表。在做特征分析列數(shù)較多,即為寬表時,我們不妨選擇某些列為unpivot列,從而降低維度,增加行數(shù)據(jù)實現(xiàn)對數(shù)據(jù)的重構(gòu)。
官方解釋melt()中變化這個詞使用了unpivot,因此大膽猜測它的逆操作為 pivot()。
看完上述內(nèi)容,你們對Python數(shù)據(jù)分析中寬表是如何重構(gòu)為長表有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。