最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法

 更新時(shí)間:2018年11月16日 09:19:03   作者:moxigandashu  
今天小編就為大家分享一篇用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

在處理數(shù)據(jù)時(shí),經(jīng)常需要對數(shù)據(jù)分組計(jì)算均值或者計(jì)數(shù),在Microsoft Excel中,可以通過透視表輕易實(shí)現(xiàn)簡單的分組運(yùn)算。而對于更加復(fù)雜的分組運(yùn)算,Python中pandas包可以幫助我們實(shí)現(xiàn)。

1 數(shù)據(jù)

首先引入幾個(gè)重要的包:

import pandas as pd
import numpy as np
from pandas import DataFrame,Series

通過代碼構(gòu)造數(shù)據(jù)集:

data=DataFrame({'key1':['a','b','c','a','c','a','b','a','c','a','b','c'],'key2':['one','two','three','two','one','one','three','one','two','three','one','two'],'num1':np.random.rand(12),'num2':np.random.randn(12)})

得到數(shù)據(jù)集如下:

data
 key1 key2  num1  num2
0 a one 0.268705 0.084091
1 b two 0.876707 0.217794
2 c three 0.229999 0.574402
3 a two 0.707990 -1.444415
4 c one 0.786064 0.343244
5 a one 0.587273 1.212391
6 b three 0.927396 1.505372
7 a one 0.295271 -0.497633
8 c two 0.292721 0.098814
9 a three 0.369788 -1.157426

2 交叉表—分類計(jì)數(shù)

按照不同類進(jìn)行計(jì)數(shù)統(tǒng)計(jì)是最常見透視功能,可以通

(1)crosstab

#函數(shù):
crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, dropna=True, normalize=False)

crosstab的index和columns是必須要指定復(fù)制的參數(shù):

pd.crosstab(data.key1,data.key2)

結(jié)果如下:

key2 one three two
key1     
a  3  1 1
b  0  1 1
c  1  1 1

想要在邊框處增加匯總項(xiàng)可以指定margin的值為True:

pd.crosstab(data.key1,data.key2,margins=True)

結(jié)果:

key2 one three two All
key1      
a  3  1 1 5
b  1  1 1 3
c  1  1 2 4
All  5  3 4 12

(2)pivot_table

函數(shù):

pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

使用pivot_table函數(shù)同樣可以實(shí)現(xiàn),運(yùn)算函數(shù)默認(rèn)值aggfunc='mean',指定為aggfunc='count'即可:

data.pivot_table('num1',index='key1',columns='key2',aggfunc='count')

結(jié)果相同:

key2 one three two
key1     
a  3  1 1
b  1  1 1
c  1  1 2

(3)groupby

通過groupby相對來說會(huì)更加復(fù)雜,首先需要對data按照key1和key2進(jìn)行聚類,然后進(jìn)行count運(yùn)算,再將key2的index重塑為columns:

data.groupby(['key1','key2'])['num1'].count().unstack()

結(jié)果:

key2 one three two
key1     
a  3  1 1
b  1  1 1
c  1  1 2

3 其它透視表運(yùn)算

(1)pivot_table

pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

要進(jìn)行何種運(yùn)算,只需要指定aggfunc即可。

默認(rèn)計(jì)算均值:

data.pivot_table(index='key1',columns='key2')

out:

   num1       num2     
key2  one  three  two  one  three  two
key1               
a  0.193332 0.705657 0.203155 -0.165749 2.398164 -1.293595
b  0.167947 0.204545 0.661460 0.555850 -0.522528 0.143530
c  0.496993 0.033673 0.206028 -0.115093 0.024650 0.077726

分類匯總呢并求和:

data.pivot_table(index='key1',columns='key2',aggfunc='sum')

結(jié)果:

   num1       num2     
key2  one  three  two  one  three  two
key1               
a  0.579996 0.705657 0.203155 -0.497246 2.398164 -1.293595
b  0.167947 0.204545 0.661460 0.555850 -0.522528 0.143530
c  0.496993 0.033673 0.412055 -0.115093 0.024650 0.155452

也可以使用其它自定義函數(shù):

#定義一個(gè)最大值減最小值的函數(shù)
def max_min (group):
 return group.max()-group.min()
data.pivot_table(index='key1',columns='key2',aggfunc=max_min)

結(jié)果:

   num1     num2    
key2  one three two  one three  two
key1             
a  0.179266 0.0 0.000 3.109405 0.0 0.000000
b  0.000000 0.0 0.000 0.000000 0.0 0.000000
c  0.000000 0.0 0.177 0.000000 0.0 1.609466

(2)通過groupby

普通的函數(shù)如mean,sum可以直接應(yīng)用:

data.groupby(['key1','key2']).mean().unstack()

返回結(jié)果:

   num1       num2     
key2  one  three  two  one  three  two
key1               
a  0.193332 0.705657 0.203155 -0.165749 2.398164 -1.293595
b  0.167947 0.204545 0.661460 0.555850 -0.522528 0.143530
c  0.496993 0.033673 0.206028 -0.115093 0.024650 0.077726

以上這篇用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在python中創(chuàng)建指定大小的多維數(shù)組方式

    在python中創(chuàng)建指定大小的多維數(shù)組方式

    今天小編就為大家分享一篇在python中創(chuàng)建指定大小的多維數(shù)組方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python量化交易實(shí)戰(zhàn)之使用Resample函數(shù)轉(zhuǎn)換“日K”數(shù)據(jù)

    Python量化交易實(shí)戰(zhàn)之使用Resample函數(shù)轉(zhuǎn)換“日K”數(shù)據(jù)

    resample函數(shù)是Python數(shù)據(jù)分析庫Pandas的方法函數(shù),它主要用于轉(zhuǎn)換時(shí)間序列的頻次,今天通過本文給大家分享python使用Resample函數(shù)轉(zhuǎn)換時(shí)間序列的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-06-06
  • 關(guān)于yolov5的一些簡單說明(txt文件、訓(xùn)練結(jié)果分析等)

    關(guān)于yolov5的一些簡單說明(txt文件、訓(xùn)練結(jié)果分析等)

    使用YOLOV5訓(xùn)練數(shù)據(jù)之后我們需要一些評判標(biāo)準(zhǔn)來告訴我們所訓(xùn)練的效果究竟如何,下面這篇文章主要給大家介紹了關(guān)于yolov5的一些簡單說明,主要是txt文件、訓(xùn)練結(jié)果分析等的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • python中的Pytorch建模流程匯總

    python中的Pytorch建模流程匯總

    這篇文章主要介紹了python中的Pytorch建模流程匯總,主要幫大家?guī)椭蠹沂崂砩窠?jīng)網(wǎng)絡(luò)訓(xùn)練的架構(gòu),具有一的的參考價(jià)值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-03-03
  • python文檔字符串(函數(shù)使用說明)使用詳解

    python文檔字符串(函數(shù)使用說明)使用詳解

    這篇文章主要介紹了python文檔字符串(函數(shù)使用說明)使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 淺析python中5個(gè)帶key的內(nèi)置函數(shù)

    淺析python中5個(gè)帶key的內(nèi)置函數(shù)

    這篇文章主要介紹了python中5個(gè)帶key的內(nèi)置函數(shù),包括max取最大值函數(shù),min取最小值函數(shù),filter過濾函數(shù),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • python獲取本機(jī)所有IP地址的方法

    python獲取本機(jī)所有IP地址的方法

    這篇文章主要為大家詳細(xì)介紹了python獲取本機(jī)所有IP地址的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Pyhhon之Pygame的Font文本和字體

    Pyhhon之Pygame的Font文本和字體

    這篇文章主要介紹了Pygame的Font文本和字體,Pygame 通過pygame.font模塊來創(chuàng)建一個(gè)字體對象,從而實(shí)現(xiàn)繪制文本的目的。想進(jìn)一步了解的同學(xué)可以參考閱讀本文
    2023-04-04
  • python實(shí)現(xiàn)獲取單向鏈表倒數(shù)第k個(gè)結(jié)點(diǎn)的值示例

    python實(shí)現(xiàn)獲取單向鏈表倒數(shù)第k個(gè)結(jié)點(diǎn)的值示例

    這篇文章主要介紹了python實(shí)現(xiàn)獲取單向鏈表倒數(shù)第k個(gè)結(jié)點(diǎn)的值,結(jié)合實(shí)例形式分析了Python針對單向鏈表的定義、遍歷、傳值、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • PyQt5創(chuàng)建一個(gè)新窗口的實(shí)例

    PyQt5創(chuàng)建一個(gè)新窗口的實(shí)例

    今天小編就為大家分享一篇PyQt5創(chuàng)建一個(gè)新窗口的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論

会理县| 确山县| 科技| 界首市| 环江| 大厂| 普陀区| 娄烦县| 原阳县| 东海县| 金坛市| 孟州市| 奉贤区| 北川| 保定市| 霍山县| 娱乐| 邢台市| 伊川县| 河北省| 长垣县| 涟水县| 水城县| 苏州市| 三穗县| 横山县| 庆元县| 陆良县| 会泽县| 芜湖县| 大新县| 三原县| 固阳县| 精河县| 泰和县| 鲁山县| 林西县| 于田县| 沧州市| 靖远县| 北安市|