python 透視表和交叉表

2021-10-01 03:12:20 字數 2982 閱讀 7569

pivot tables and cross-tabulation

# python和pandas中,可以通過本章所介紹的groupby功能以及

# (能夠利⽤層次化索引的)重塑運算製作透視表。 dataframe有

# ⼀個pivot_table⽅法,此外還有⼀個頂級的pandas.pivot_table函

# 數。除能為groupby提供便利之外, pivot_table還可以新增分項

# ⼩計,也叫做margins。

# 10.4 透視表和交叉表

# 透視表(pivot table)是各種電⼦**程式和其他資料分析軟體

# 中⼀種常⻅的資料彙總⼯具。它根據⼀個或多個鍵對資料進⾏聚

# 合,並根據⾏和列上的分組鍵將資料分配到各個矩形區域中。在

​# python和pandas中,可以通過本章所介紹的groupby功能以及

# (能夠利⽤層次化索引的)重塑運算製作透視表。 dataframe有

# ⼀個pivot_table⽅法,此外還有⼀個頂級的pandas.pivot_table函

# 數。除能為groupby提供便利之外, pivot_table還可以新增分項

# ⼩計,也叫做margins。

tips.pivot_table(index=

['day'

,'smoker'])

tips.pivot_table(

['tip_pct'

,'size'

], index=

['time'

,'day'],

columns=

'smoker'

)tips.pivot_table(

['tip_pct'

,'size'

], index=

['time'

,'day'],

columns=

'smoker'

, margins=

true

)這⾥, all值為平均數:不單獨考慮煙⺠與⾮煙⺠(all列),不單

# 獨考慮⾏分組兩個級別中的任何單項(all⾏)。

# 要使⽤其他的聚合函式,將其傳給aggfunc即可。例如,使⽤

# count或len可以得到有關分組⼤⼩的交叉表(計數或頻率):

# 這⾥, all值為平均數:不單獨考慮煙⺠與⾮煙⺠(all列),不單

# 獨考慮⾏分組兩個級別中的任何單項(all⾏)。

# 要使⽤其他的聚合函式,將其傳給aggfunc即可。例如,使⽤

# count或len可以得到有關分組⼤⼩的交叉表(計數或頻率):

tips.pivot_table(

'tip_pct'

, index=

['time'

,'smoker'

], columns=

'day'

, aggfunc=

len, margins=

true

)day fri sat sun thur all

time smoker

dinner no 3.0

45.0

57.0

1.0106.0

yes 9.0

42.0

19.0 nan 70.0

lunch no 1.0 nan nan 44.0

45.0

yes 6.0 nan nan 17.0

23.0

all 19.0

87.0

76.0

62.0

244.0

tips.pivot_table(

'tip_pct'

, index=

['time'

,'size'

,'smoker'],

columns=

'day'

, aggfunc=

'mean'

, fill_value=0)

cross-tabulations: crosstab

交叉表: crosstab

# 交叉表(cross-tabulation,簡稱crosstab)是⼀種⽤於計算分組

# 頻率的特殊透視表。看下⾯的例⼦:

# 交叉表: crosstab

# 交叉表(cross-tabulation,簡稱crosstab)是⼀種⽤於計算分組

# 頻率的特殊透視表。看下⾯的例⼦:

from io import stringio

data =

"""\

sample nationality handedness

1 usa right-handed

2 japan left-handed

3 usa right-handed

4 japan right-handed

5 japan left-handed

6 japan right-handed

7 usa right-handed

8 usa left-handed

9 japan right-handed

10 usa right-handed"""

data = pd.read_table(stringio(data)

, sep=

'\s+'

)data

pd.crosstab(data.nationality, data.handedness, margins=

true

)pd.crosstab(

[tips.time, tips.day]

, tips.smoker, margins=

true

)pd.options.display.max_rows = previous_max_rows

conclusion

Pandas透視表和交叉表

透視表 透視表 pivot table 是各種電子 程式和其他資料分析軟體中一種常見的資料彙總工具。它根據乙個或多個鍵對資料進行聚合,並根據行和列上得分組建將資料分配到各個矩形區域中。在python和pandas中,可以通過本章所介紹的groupby功能以及 能夠利用層次化索引的 重塑運算製作透視表...

利用Python實現資料透視表和交叉表

1 透視表 pivot table pd.pivot table data,values none,index none,columns none,aggfunc mean fill value none,margins false,dropna true,margins name all 其中,d...

pandas 交叉表與透視表

利用pivot table函式可以實現透視表,pivot table 函式的常用引數及其使用格式如下。pands.pivot table data,values none,index none,columns none,aggfunc mean fill value none,margins fal...