pandas.pivot_table()数据透视表详解

  • 数据透视表 百度百科

    数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。
    之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据。另外,如果原始数据发生更改,则可以更新数据透视表。

  • 官方文档

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

    创建电子表格风格的透视表作为DataFrame。透视表里的级别会存储在结果DataFrame的索引和列上的多层索引对象(分层索引)中。

  • 参数

    参数数据类型意义
    dataDataFrame
    valuescolumn to aggregate, optional聚合的列
    indexcolumn, Grouper, array, or list of the previous如果使Array,则长度需要与data相同;
    list内可以包含除list之外的其他各种类型;
    在透视表索引上分组的键,如果传入的是array,用法与列值一样
    columnscolumn, Grouper, array, or list of the previous如果传入array,长度需与data相同
    aggfuncfunction, list of functions, dict, default numpy.mean如果是list of functions,得到的透视表具有分层的列,他们的最高级别是函数名称;
    如果是dict,key是需要聚合的列,value是函数或函数列
    fill_valuescalar, default None填充缺失值
    marginsboolean, default False添加所有row/columns
    dropnaboolean, default True不包括全是NaN的列
    margins_namestring, default ‘All’当margins是True,包含总数的行/列名字
    observedboolean, default False
  • 案例

    >>> df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
    ...                          "bar", "bar", "bar", "bar"],
    ...                    "B": ["one", "one", "one", "two", "two",
    ...                          "one", "one", "two", "two"],
    ...                    "C": ["small", "large", "large", "small",
    ...                          "small", "large", "small", "small",
    ...                          "large"],
    ...                    "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
    ...                    "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]})
    >>> df
         A    B      C  D  E
    0  foo  one  small  1  2
    1  foo  one  large  2  4
    2  foo  one  large  2  5
    3  foo  two  small  3  5
    4  foo  two  small  3  6
    5  bar  one  large  4  6
    6  bar  one  small  5  8
    7  bar  two  small  6  9
    8  bar  two  large  7  9
    >>> table = pd.pivot_table(df, values='D', index=['A', 'B'],
    ...                     columns=['C'], aggfunc=np.sum)
    >>> table
    C        large  small
    A   B
    bar one    4.0    5.0
        two    7.0    6.0
    foo one    4.0    1.0
        two    NaN    6.0
    
  • Reference

  1. Pandas | 一文看懂透视表pivot_table
  2. Pandas透视表(pivot_table)详解
  3. pandas.DataFrame.pivot_table
  4. pandas.pivot_table
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值