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