您好,登錄后才能下訂單哦!
這篇文章主要講解了“python DataFrame中stack()方法、unstack()方法和pivot()方法怎么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python DataFrame中stack()方法、unstack()方法和pivot()方法怎么用”吧!
stack()用于將列索引轉換為最內層的行索引,這樣敘述比較抽象,看示例就容易理解啦:
準備一組數據,給其設置雙索引。
import pandas as pd data = [['A類', 'a1', 123, 224, 254], ['A類', 'a2', 234, 135, 444], ['A類', 'a3', 345, 241, 324], ['B類', 'b1', 112, 412, 466], ['B類', 'b2', 224, 235, 345], ['B類', 'b3', 369, 214, 352], ['C類', 'c1', 236, 251, 485], ['C類', 'c2', 378, 216, 515], ['C類', 'c3', 135, 421, 312], ['D類', 'd1', 306, 325, 496], ['D類', 'd2', 147, 235, 524], ['D類', 'd3', 520, 222, 267]] df = pd.DataFrame(data=data, columns=['類別', '編號', 'A指標', 'B指標', 'C指標']) df = df.set_index(['類別', '編號']) print(df)
df = df.stack() print(df)
如圖,成功將索引列之外的 A指標,B指標,C指標三列放在了同一列。
此時的df,不再是一個DataFrame,而變為了一個Series對象。:
print(type(df))
該Series的index列不同于原DataFrame的index列,而是在原DataFrame的index列的基礎上,又增加了從右邊合并過來的部分:
print(df.index)
此時Values為:
print(df.values)
unstack是stack的逆向操作。
在上述示例的代碼的基礎上,對上邊的df繼續調用unstack()方法:
df1 = df.unstack() print(df1)
可以看到unstack變回了原來的樣子。
這里對于上邊例子中的數據稍作調整:
不設置多重索引
import pandas as pd data = [['A類', '1', 123, 224, 254], ['A類', '2', 234, 135, 444], ['A類', '3', 345, 241, 324], ['B類', '1', 112, 412, 466], ['B類', '2', 224, 235, 345], ['B類', '3', 369, 214, 352], ['C類', '1', 236, 251, 485], ['C類', '2', 378, 216, 515], ['C類', '3', 135, 421, 312], ['D類', '1', 306, 325, 496], ['D類', '2', 147, 235, 524], ['D類', '3', 520, 222, 267]] df = pd.DataFrame(data=data, columns=['類別', '編號', 'A指標', 'B指標', 'C指標']) print(df)
df2 = df.pivot(index='編號', columns='類別', values='A指標') print(df2)
index和columns分別指設定那一列的值為index,設置那一列的值為columns。values指表格要體現的指標。
df3 = df.pivot(index='類別', columns='編號', values='A指標') print(df3)
感謝各位的閱讀,以上就是“python DataFrame中stack()方法、unstack()方法和pivot()方法怎么用”的內容了,經過本文的學習后,相信大家對python DataFrame中stack()方法、unstack()方法和pivot()方法怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。