国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何用Python實現(xiàn)透視表?

開發(fā) 后端
使用數(shù)據(jù)透視表可以自由選擇不同字段,用不同的聚合函數(shù)進行匯總,并建立交叉表格,用以從不同層面觀察數(shù)據(jù)。這么強大的功能,在Python中怎么去實現(xiàn)呢?

相信接觸過Excel的小伙伴都知道,Excel有一個非常強大的功能“數(shù)據(jù)透視表”,使用數(shù)據(jù)透視表可以自由選擇不同字段,用不同的聚合函數(shù)進行匯總,并建立交叉表格,用以從不同層面觀察數(shù)據(jù)。這么強大的功能,在Python中怎么去實現(xiàn)呢?

如何用Python實現(xiàn)透視表?

不用擔心,Python的"數(shù)據(jù)分析小能手"Pandas很貼心地為我們提供了一個快速實現(xiàn)數(shù)據(jù)透視表功能的方法——pivot_table()。事不宜遲,讓我們趕緊看看如何在Python中實現(xiàn)數(shù)據(jù)透視表!

1. 數(shù)據(jù)

為幫助大家更好地理解,在講解如何使用pivot_table( )實現(xiàn)透視表前,我們先導入示例數(shù)據(jù),在接下來的講解中都使用此數(shù)據(jù)作為例子。

  1. # 導入示例數(shù)據(jù) 
  2. <<< datadata =pd.read_csv("data.csv") 
  3. <<< data.head() 
  4.     月份  項目  部門   金額       剩余金額 
  5. 0   1月  水費  市場部 1962.37    8210.58 
  6. 1   2月  水費  市場部 690.69     9510.60 
  7. 2   2月  電費  市場部 2310.12    5384.92 
  8. 3   2月  電費  運營部 -1962.37   7973.10 
  9. 4   2月  電費  開發(fā)部 1322.33    6572.16 

下面我將帶大家使用pivot_table( )一步一步實現(xiàn)數(shù)據(jù)透視表的操作。

2. 操作

首先,原數(shù)據(jù)有5個字段,我們在做數(shù)據(jù)透視表之前必須理解每個字段的意思,明確清楚自己需要得到什么信息。

假設我們想看看不同月份所花費的水電費金額是多少,這時我們需要把字段“月份”設置為索引,將字段“金額”設置為我們需要看的值,具體代碼如下:

  1. <<< data.pivot_table(index=['月份'],values=['金額']) 
  2.            金額 
  3. 月份   
  4. 10月 3723.940000 
  5. 11月 2900.151667 
  6. 12月 10768.262857 
  7. 1月  1962.370000 
  8. 2月  1432.280000 
  9. 3月  3212.106667 
  10. 4月  4019.175000 
  11. 5月  4051.480000 
  12. 6月  6682.632500 
  13. 7月  11336.463333 
  14. 8月  17523.485000 
  15. 9月  10431.960000 

參數(shù)index為設置的索引列表,即分組依據(jù),需要用中括號[ ]將索引字段括起來;參數(shù)values為分組后進行計算的字段列表,也需要用中括號[ ]括起來。這兩個參數(shù)的值可以是一個或多個字段,即按照多個字段進行分組和對多個字段進行計算匯總。例如,設置index=['項目','部門']代表求不同項目不同部門下的金額。

  1. <<< data.pivot_table(index=['項目','部門'],values=['金額']) 
  2.             金額 
  3. 項目  部門   
  4. 水費  市場部  3614.318125 
  5.      開發(fā)部   2358.205000 
  6.      運營部   5896.213333 
  7. 電費  市場部   6094.748235 
  8.       開發(fā)部   1322.330000 
  9.       運營部   7288.615000 
  10. 采暖費 市場部   5068.380000 
  11.       運營部   55978.000000 

若設置values=['金額','剩余金額'],即求不同項目不同部門下金額和剩余金額的值。

  1. <<< data.pivot_table(index=['項目','部門'],values=['金額','剩余金額']) 
  2.               剩余金額       金額 
  3. 項目  部門       
  4. 水費  市場部    7478.423125  3614.318125 
  5.       開發(fā)部   6866.490000   2358.205000 
  6.       運營部   7224.033333   5896.213333 
  7. 電費  市場部    7645.535882   6094.748235 
  8.       開發(fā)部   6572.160000    1322.330000 
  9.       運營部   8821.895000    7288.615000 
  10. 采暖費 市場部   6572.030000    5068.380000 
  11.       運營部   7908.560000    55978.000000 

同時,如果我們想以交叉表的形式查看不同項目和不同部門下的消費金額,這時就要將字段‘部門’設置為列名,進行交叉查看,具體代碼如下:

  1. <<< data.pivot_table(index=['項目'],columns=['部門'],values=['金額']) 
  2.       金額 
  3. 部門   市場部        開發(fā)部     運營部 
  4. 項目           
  5. 水費   3614.318125  2358.205  5896.213333 
  6. 電費   6094.748235  1322.330  7288.615000 
  7. 采暖費  5068.380000  NaN      55978.000000 

通過上面的示例,我們可以看到某個分組下不存在記錄會被標記為NAN,例如上述中采暖部和開發(fā)部不存在金額這一字段的記錄,則會標記為NAN。如果不希望被標記為NAN,我們可以通過設置參數(shù)fill_value=0來用數(shù)值0替代這部分的缺失值。

  1. <<< data.pivot_table(index=['項目'],columns=['部門'],values=['金額'],fill_value=0
  2.       金額 
  3. 部門   市場部        開發(fā)部     運營部 
  4. 項目           
  5. 水費   3614.318125  2358.205  5896.213333 
  6. 電費   6094.748235  1322.330  7288.615000 
  7. 采暖費  5068.380000  0.000    55978.000000 

在上面的示例中,我們都是默認分組后對值進行求平均值計算,假如我們想查看不同項目不同部門下金額的總和該怎么實現(xiàn)呢?

通過設置參數(shù)aggfunc=np.sum即可對分組后的值進行求和操作,參數(shù)aggfunc代表分組后值的匯總方式,可傳入numpy庫中的聚合方法。

  1. <<< data.pivot_table(index=['項目'],columns=['部門'],values=['金額'],fill_value=0,aggfunc=np.sum) 
  2. 金額 
  3. 部門    市場部      開發(fā)部    運營部 
  4. 項目           
  5. 水費    57829.09   4716.41   17688.64 
  6. 電費    103610.72  1322.33   29154.46 
  7. 采暖費   5068.38    0.00     55978.00 

除了常見的求和、求平均值這兩種聚合方法,我們還可能接觸到以下這幾種:

描述方法標準差np.std()方差np.var()所有元素相乘np.prod()中數(shù)np.median()冪運算np.power()開方np.sqrt()最小值np.min()最大值np.max()以e為底的指數(shù)np.exp(10)對數(shù)np.log(10)

與前面介紹的參數(shù)index,columns,value一樣,參數(shù)aggfunc傳入的值也是一個列表,表示可傳入一個或多個值。當傳入多個值時,表示對該值進行多種匯總方式,例如同時求不同項目不同部門下金額的求和值和平均值:

  1. <<< data.pivot_table(index=['項目'],columns=['部門'],values=['金額'],fill_value=0,aggfunc=[np.sum,np.max]) 
  2.      sum               amax 
  3.      金額               金額 
  4. 部門  市場部 開發(fā)部 運營部 市場部 開發(fā)部 運營部 
  5. 項目                       
  6. 水費  57829.09  4716.41  17688.64 16807.58 2941.28 6273.56 
  7. 電費  103610.72 1322.33  29154.46 18239.39 1322.33 26266.60 
  8. 采暖費 5068.38   0.00    55978.00  5068.38  0.00    55978.00 

同時,如果我們想對不同字段進行不同的匯總方式,可通過對參數(shù)aggfunc傳入字典來實現(xiàn),例如我們可以同時對不同項目不同部門下,對字段金額求總和值,對字段剩余金額求平均值:

  1. <<< data.pivot_table(index=['項目'],columns=['部門'],values=['金額','剩余金額'],fill_value=0,aggfunc={'金額':np.sum,'剩余金額':np.max}) 
  2.      剩余金額                  金額 
  3. 部門  市場部   開發(fā)部   運營部   市場部     開發(fā)部     運營部 
  4. 項目                       
  5. 水費  9510.60 8719.34 7810.38 57829.09   4716.41  17688.64 
  6. 電費  9625.27 6572.16 9938.82 103610.72  1322.33  29154.46 
  7. 采暖費 6572.03 0.00    7908.56 5068.38    0.00     55978.00 

另外,在進行以上功能的同時,pivot_table還為我們提供了一個求所有行及所有列對應合計值的參數(shù)margins,當設置參數(shù)margins=True時,會在輸出結果的最后添加一行'All',表示根據(jù)columns進行分組后每一項的列總計值;以及在輸出結果的最后添加一列'All',表示根據(jù)index進行分組后每一項的行總計值。

  1. <<< pd.set_option('precision',0) 
  2. <<< data.pivot_table(index=['項目'],columns=['部門'],values=['金額','剩余金額'],fill_value=0,aggfunc={'金額':np.sum,'剩余金額':np.max},margins=True
  3.      剩余金額                 金額 
  4. 部門  市場部 開發(fā)部 運營部 All   市場部  開發(fā)部  運營部  All 
  5. 項目                               
  6. 水費  9511  8719  7810  9511  57829  4716   17689  80234 
  7. 電費  9625  6572  9939  9939  103611  1322  29154  134088 
  8. 采暖費 6572  0     7909  7909  5068    0     55978  61046 
  9. All   9625  8719  9939  9939  166508  6039  102821 275368 

3. 番外

上面詳細介紹了如何在python中通過pivot_table( )方法實現(xiàn)數(shù)據(jù)透視表的功能,那么,與數(shù)據(jù)透視表原理相同,顯示方式不同的‘數(shù)據(jù)透視圖’又該怎么實現(xiàn)呢?

實現(xiàn)方法非常簡單,將上述進行pivot_table操作后的對象進行實例化,再對實例化后的對象進行plot繪圖操作即可,具體代碼如下:

  1. <<< dfdf=data.pivot_table(index=['項目'],columns=['部門'],values='金額',fill_value=0
  2. <<< df.plot(kind='bar'
如何用Python實現(xiàn)透視表?

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2021-06-08 09:18:54

SQLPandas數(shù)據(jù)透視表

2011-03-15 09:10:47

iptablesNAT

2010-09-15 08:53:50

SQL Server

2011-03-15 14:26:23

iptablesNAT

2019-12-26 09:28:34

TCPPython通信

2018-03-27 18:12:12

PythonHTML

2020-07-10 09:49:53

數(shù)據(jù)清理數(shù)據(jù)分析查找異常

2023-02-08 07:09:40

PythonChatGPT語言模型

2017-04-26 13:47:32

Java

2015-07-22 12:42:36

Pivot行列轉換

2017-10-11 16:19:36

jquery留言框設計

2017-10-27 22:03:35

javascrip

2016-09-26 15:14:28

Javascript前端vue

2010-05-24 10:23:34

實現(xiàn)MySQL

2020-05-25 14:32:42

Python電子郵件自動化

2024-05-07 14:40:49

Python兒童計算器

2019-11-28 09:23:17

Python機器學習數(shù)據(jù)庫

2018-05-17 10:05:24

運行iPadPython

2015-07-09 09:49:39

PHPSocket服務器

2011-07-22 13:22:10

Java.NETDataTable
點贊
收藏

51CTO技術棧公眾號

丰满少妇久久久久久久| 亚洲人精品午夜射精日韩| 日本一区二区三不卡| 黄色日韩精品| 天堂社区 天堂综合网 天堂资源最新版| 资源视频在线播放免费| 国产在线视频网址| baoyu135国产精品免费| 精品一区二区三区在线视频| 久久综合色综合88| 日韩欧美亚洲国产另类| 成人在线视频一区二区三区| 极品中文字幕一区| 欧美猛男男办公室激情| 777精品视频| 乱小说综合网站| 99欧美精品| 久久激情久久| 精品亚洲国产成av人片传媒 | 一区二区免费视频| 亚洲午夜久久久久久久久电影院| 欧洲亚洲妇女av| 免费欧美一级视频| 日本激情视频网| 在线观看特色大片免费视频| 一区二区三区在线看| 国内自拍视频网| 不卡av在线网| 精品国产乱码久久久久久久 | 亚洲国产成人精品视频| 日产精品久久久久久久性色| 欧美日韩精品福利| 成人全视频免费观看在线看| 久久综合一区| 国产精品12区| 九七影院97影院理论片免费| 一区二区三区av电影| 成人三级av| 亚洲一区二区黄色| 91九色porn在线资源| 2020国产精品视频| 蜜桃伊人久久| 日韩在线综合网| 国产精品免费人成网站| 久久午夜剧场 | 亚洲精品国产美女| 亚洲欧美视频一区二区| 久久国内精品一国内精品| 亚洲色图制服诱惑| 黄色三及免费看| 成人av.网址在线网站| 成人免费91| 91亚洲国产精品| 国内外成人在线| 欧美爱爱视频免费看| 亚洲成人7777| 国产黄色免费在线观看| 日韩第一页在线| 成人羞羞视频播放网站| 先锋影音亚洲资源| 国产精品久久久久久久浪潮网站| 你懂的在线网址| 欧美激情精品久久久久久黑人| 宅男午夜电影| 日韩大片免费观看视频播放| 韩国三级成人在线| 日日骚一区二区网站| 国产精品国产自产拍高清av王其| 四虎影视在线播放| 色偷偷av一区二区三区乱| 中出一区二区| 日韩欧美在线免费观看视频| 3d成人动漫网站| 丁香婷婷成人| 色一情一乱一伦一区二区三欧美| 91免费观看国产| 天堂va在线| 欧美一级淫片aaaaaaa视频| www.av亚洲| 深夜成人福利| 一区二区三区欧美成人| 91精品国产色综合久久不卡电影| 日韩在线看片| 无码少妇一区二区三区芒果| 亚洲天堂av网| 精品中文字幕一区二区| 秋霞成人影院| 国产日韩欧美影视| 亚洲精品视频一区二区| 精品99re| 草草久久久无码国产专区| 日韩视频免费观看高清完整版在线观看 | 精品176二区| 91色在线观看| 亚洲成av人**亚洲成av**| 欧美综合在线视频观看| 神马午夜dy888| 高清视频一区二区三区| 欧美午夜视频一区二区| 国产精品mm| 91九色国产在线播放| 日韩片电影在线免费观看| 欧美午夜一区二区三区免费大片| 第一区第二区在线| 国内福利写真片视频在线| 91精品中文在线| 欧美成人综合网站| 亚洲国产成人精品女人| 精品午夜av| 欧美在线不卡区| 亚洲精品免费一二三区| 中文字幕精品综合| 精品国产一区二区三区久久久蜜臀 | 久久激情五月婷婷| 四虎精品一区二区免费| 国产二级片在线| 国产精品二区在线| 国产午夜精品免费一区二区三区| 国产精品污污网站在线观看| 欧美三级美国一级| 天堂√中文最新版在线| 热99在线观看| 亚欧精品在线| 欧美综合激情网| 日韩性生活视频| 色婷婷综合久久久久中文 | 蜜臀久久99精品久久一区二区| 一二三四中文在线| 欧美又粗又长又爽做受| 91天堂在线观看| 亚洲精品国产精品乱码不99按摩| 久久综合色8888| 美女网站色91| 欧美三级乱码| 国产成人影院| 亚洲不卡系列| 97超碰资源站在线观看| 国产小视频精品| 97超碰免费观看| 成人网在线视频| 国产精品久久久久久一区二区| 亚洲精品理论电影| 欧美性猛交xxx| 夜夜嗨av一区二区三区网页| 成人精品gif动图一区| 免费在线一区观看| 久久xxxx精品视频| 国产精品magnet| 手机在线电影一区| 综合干狼人综合首页| 亚洲动漫精品| 1204国产成人精品视频| 美女高潮视频在线看| 日韩在线伦理| 电影一区二区三区| 日韩伦理在线一区| 国产精品久久久久久久久久齐齐 | 中文字幕一区二区三区中文字幕| 亚洲妇女成熟| 精品视频一区二区三区在线观看 | 成人免费在线电影网| 97久久综合精品久久久综合| 黄色欧美视频| 国产精品国产| 精品产国自在拍| 亚洲字幕久久| 99精品久久| 亚洲色图另类专区| 久久精品成人欧美大片| 视频二区一区| 嫩草香蕉在线91一二三区| 精品一区欧美| 久久久午夜精品理论片中文字幕| 欧美va亚洲va在线观看蝴蝶网| 福利视频一区二区三区| 黄页免费在线| 久久不见久久见中文字幕免费| 国产在线麻豆精品观看| 精品国产污网站| 久久av免费观看| 欧美知名女优| 欧美第一精品| 精品免费在线观看| 国产精品黄页免费高清在线观看| 在线观看的毛片| 精品一区二区三区中文字幕在线 | 亚洲一区二区免费看| 国产毛片精品一区| 亚瑟在线精品视频| 欧美激情精品在线| 国产精品www在线观看| 98色花堂精品视频在线观看| 五月天久久久| 亚洲高清不卡在线| 欧美激情极品视频| 欧美精品一区二区性色a+v| 91视频在线观看| 中文欧美日韩| 欧美一区在线视频| 日韩欧美一区二区三区四区五区|