文章目录

  • 十、数据透视表
  • 1.获取数据
  • 2.手工制作数据透视表
  • 3.数据透视表语法
  • 1)多级数据透视表
  • 2)其他数据透视表选项
  • 4.案例:美国人的生日
  • 附:逆透视方法df.melt()


十、数据透视表

数据透视表将每一列数据作为输入,输出将数据不断细分成多个维度累计信息的二维数据表。

1.获取数据

本节用一份Seaborn 程序库采用泰坦尼克号的乘客信息数据库来演示(titanic)

python透视表语法 python中透视表_数据

2.手工制作数据透视表

使用groupby可以实现数据透视的效果,但是比较繁琐

python透视表语法 python中透视表_多级_02

3.数据透视表语法

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

python透视表语法 python中透视表_获取数据_03


python透视表语法 python中透视表_python透视表语法_04

1)多级数据透视表

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False) 用途:返回 x 中的每一个数据 在bins 中对应 的范围,相当于将x按照边界值分箱

python透视表语法 python中透视表_获取数据_05


使用新的列作为透视index

python透视表语法 python中透视表_多级_06


pd.qcut(x, q, labels=None, retbins=False, precisinotallow=3, duplicates='raise') 用途:根据x均匀分成x个箱子,如q=2,则是按照中位数分箱,以此类推

将新的列作为透视columns

python透视表语法 python中透视表_python透视表语法_07

2)其他数据透视表选项

fill_valuedropna这两个参数用于处理缺失值

aggfunc参数:

用于设置累计函数类型,默认值是均值,与 GroupBy 的用法一样,累计函数可以用一些常见的字符串(‘sum’、 ‘mean’、 ‘count’、 ‘min’、 ‘max’ 等)表示,也可以用标准的累计函数(np.sum()、 min()、 sum() 等)表示。

不同的透视列如果需要使用不同的累计方法,可以通过字典为不同的列指定

python透视表语法 python中透视表_数据_08


margins对行列总计,总计行/列名称默认为’All’

python透视表语法 python中透视表_python透视表语法_09

4.案例:美国人的生日

附:逆透视方法df.melt()

pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None) 该方法可以将二维数据转换成一维数据

python透视表语法 python中透视表_多级_10


如同透视表,逆透视也可以一步步列转索引(set_index),维度转索引(stack)来实现

python透视表语法 python中透视表_数据_11