一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

2021-12-30 00:27Wumbuk Python

筆者最近正在學習Pandas數(shù)據(jù)分析,將自己的學習筆記做成一套系列文章。本節(jié)主要記錄Pandas中使用stack和pivot實現(xiàn)數(shù)據(jù)透視。感興趣的小伙伴們可以參考一下

前言

筆者最近正在學習Pandas數(shù)據(jù)分析,將自己的學習筆記做成一套系列文章。本節(jié)主要記錄Pandas中使用stack和pivot實現(xiàn)數(shù)據(jù)透視。

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

 

一、經(jīng)過統(tǒng)計得到多維度指標數(shù)據(jù)

非常場景的統(tǒng)計場景,指定多個維度,計算聚合后的指標
實例:統(tǒng)計得到“電影評分數(shù)據(jù)集”,每個月份的每個分數(shù)被評分多少次:(月份、分數(shù)1-5、次數(shù))

import pandas as pd
import numpy as np
%matplotlib inline
df=pd.read_csv(
      "./datas/ml-1m/ratings.dat",
  sep="::",
  engine='python',
  names='UserID::MovieID::Rating::Timestamp'.split("::"),
  header=None
)
df.head()

#將時間戳轉(zhuǎn)換為具體的時間
df['padate']=pd.to_datetime(df["Timestamp"],unit='s')
df.head()

df.dtypes

#實現(xiàn)數(shù)據(jù)統(tǒng)計 
# 對于這樣格式的數(shù)據(jù),我想查看按月份,不同評分的次數(shù)趨勢,是沒有辦法進行實現(xiàn)的,需要將數(shù)據(jù)轉(zhuǎn)換為每個評分是一列才可以實現(xiàn)。
df_group=df.groupby([df["padate"].dt.month,"Rating"])["UserID"].agg(pv=np.sum) 
df_group.head(20)


Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

 

二、使用unstack實現(xiàn)數(shù)據(jù)的二維透視

目的: 想要畫圖對比按照月份的不同評分的數(shù)量趨勢

df_stack=df_group.unstack()
df_stack

df_stack.plot()

#unstack和stack是互逆的操作
df_stack.stack().head(20)

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

 

三、使用pivot簡化透視

pivot方法相當于對df使用set_index創(chuàng)建分層索引,然后調(diào)用unstack

df_group.head(20)

df_reset=df_group.reset_index()
df_reset.head()

df_pivot=df_reset.pivot("padate","Rating","pv")
df_pivot.head()

df_pivot.plot()

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

 

四、stack、unstack、pivot的語法

1.stack

stack:DataFrame.stack(level=-1,dropna=True),將column變成index,類似把橫放的書籍變成豎放
level=-1代表多層索引的最內(nèi)層,可以通過==0,1,2指定多層索引的對應層

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

2.unstack

unstack:DataFrame.unstack(level=-1,fill_value=None),將index變成column,類似把豎放的書變成橫放

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

3.pivot

pivot:DataFrame.pivot(index=None,columns=None,values=None),指定index,columns,values實現(xiàn)二維透視

Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法

 

總結

到此這篇關于Pandas使用stack和pivot實現(xiàn)數(shù)據(jù)透視的方法的文章就介紹到這了,更多相關Pandas stack和pivot數(shù)據(jù)透視內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_48081868/article/details/120106843

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 草莓在线 | 精品久久久久久久高清 | 激情综合站 | 国产一卡2卡3卡四卡精品网 | free性泰国娇小videos | 视频免费视频观看网站 | 天堂成人影院 | 精品一区二区三区波多野结衣 | 亚洲一区 在线播放 | 国产理论片在线观看 | 国产馆| 国产精品一级片 | 亚洲国产精品嫩草影院永久 | 美日韩一区二区三区 | 五月色天在线视频综合观看 | 隔壁老王国产精品福利 | 欧美精品一区二区三区久久 | 日韩色在线观看 | 福利国模私拍视频在线观看 | 日韩毛片免费在线观看 | 日本大片网 | 关晓彤被调教出奶水 | 成人精品视频 成人影院 | 亚洲AV午夜福利精品香蕉麻豆 | 91制片厂果冻传媒首页 | 日韩精品视频在线观看免费 | 午夜综合 | 98在线视频噜噜噜国产 | 扒开女人下面使劲桶屁股动漫 | 亚洲AV无码国产精品午夜久久 | 亚州vs欧州vs日 | 亚洲 日本 天堂 国产 在线 | 国产99青草全福视在线 | 久久99热狠狠色AV蜜臀 | 亚洲 欧美 国产 在线 日韩 | 99久久精品免费看国产高清 | 91制片厂制作果冻传媒八夷 | 欧美日韩免费一区二区在线观看 | 疯狂伦交1一6 小说 风间由美在线 | 亚洲第一区se | 国产福利兔女郎在线观看 |