python 用pandas实现数据透视表功能

 更新时间:2020年12月21日 16:11:01   作者:赏尔  
这篇文章主要介绍了python 用pandas实现数据透视表功能的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

透视表是一种可以对数据动态排布并且分类汇总的表格格式。对于熟练使用 excel 的伙伴来说,一定很是亲切!

pd.pivot_table() 语法:

pivot_table(data,  # DataFrame
      values=None,  # 值
      index=None,  # 分类汇总依据
      columns=None,  # 列
      aggfunc='mean',  # 聚合函数
      fill_value=None,  # 对缺失值的填充
      margins=False,  # 是否启用总计行/列
      dropna=True,  # 删除缺失
      margins_name='All'  # 总计行/列的名称
      )

1、销量数据的透视

1.1 读入数据

import os
import numpy as np
import pandas as pd

file_name = os.path.join(path, 'Excel_test.xls')
df = pd.read_excel(io=file_name,  # 工作簿路径
          sheetname='透视表',  # 工作表名称
          skiprows=1,  # 要忽略的行数
          parse_cols='A:D'  # 读入的列
         )
df

1.2 数据透视

# 透视数据
df_p = df.pivot_table(index='客户名称',  # 透视的行,分组依据
           values='销量',  # 值
           aggfunc='sum'  # 聚合函数
           )
# 对透视表进行降序排列
df_p = df_p.sort_values(by='销量',  # 排序依据
            ascending=False  # 是否升序排列
            )
# 设置数值格式
df_p = df_p.round({'销量': 0}).astype('int')

# 添加列
ks = df_p['销量']//100
df_p['重要程度'] = ['★'*k for k in ks]
df_p

1.3 重新设置图示表的索引

df_p['客户名称'] = df_p.index
df_p.set_index(keys=['重要程度', '客户名称'])

注:以上操作从理论和实践方面看都没什么问题,但模仿 excel 的痕迹浓重了些,更 python 的操作是用 groupby-applay 的方法。

2 用 分组聚合 实现数据透视

grouped = df.groupby(by='客户名称')
grouped['销量'].agg('sum')

2.1 实现目标格式的透视表

# 分类汇总
df_p = df.groupby(by='客户名称'  # 分类
         ).agg('sum'  # 汇总
           ).sort_values(by='销量', ascending=False  # 排序
                  ).round({'销量': 0}  # 设置精度
                     ).astype('int')  # 数据类型转换

# 添加列
ks = df_p['销量']//100
df_p['重要程度'] = ['★'*k for k in ks]
df_p['客户名称'] = df_p.index
# 层次索引
df_p.set_index(keys=['重要程度', '客户名称'])

软件信息:

以上就是python 用pandas实现数据透视表功能的详细内容,更多关于python pandas实现数据透视表的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Numpy中的广播原则/机制

    详解Numpy中的广播原则/机制

    这篇文章主要介绍了Numpy中的广播原则/机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Python实现曲线拟合的最小二乘法

    Python实现曲线拟合的最小二乘法

    这篇文章主要为大家详细介绍了Python实现曲线拟合的最小二乘法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • python如何导出微信公众号文章方法详解

    python如何导出微信公众号文章方法详解

    这篇文章主要介绍了python如何导出微信公众号文章方法详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • python中二维阵列的变换实例

    python中二维阵列的变换实例

    这篇文章主要介绍了python中二维阵列的变换实例,通过对比两种不同的方法分析了二维阵列变换的实现方法,需要的朋友可以参考下
    2014-10-10
  • Python自动录入ERP系统数据

    Python自动录入ERP系统数据

    这篇文章主要介绍了Python如何自动录入ERP系统数据,用Python解决Excel问题的最佳方法,文章中有详细的代码示例,需要的朋友可以参考阅读
    2023-04-04
  • Python中PySide2的安装及配置

    Python中PySide2的安装及配置

    在python中,支持图形化界面开发的库有很多,今天主要介绍一下PySide2这个库。具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 使用Python和Plotly绘制各种类型3D图形的方法

    使用Python和Plotly绘制各种类型3D图形的方法

    Python语言拥有丰富的数据可视化库,其中Plotly是一款流行的工具,提供了绘制高质量三维图形的功能,本文将介绍如何使用Python和Plotly来绘制各种类型的3D图形,并给出代码实例,需要的朋友可以参考下
    2024-05-05
  • Django进阶深入理解使用类视图和中间件示例

    Django进阶深入理解使用类视图和中间件示例

    这篇文章主要为大家介绍了Django高级指南之深入理解和使用类视图和中间件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Python光学仿真实现波长与颜色之间对应关系示例解析

    Python光学仿真实现波长与颜色之间对应关系示例解析

    这篇文章主要为大家介绍了Python光学仿真实现波长与颜色之间对应关系的示例解析,有需要的我朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • pytorch模型的定义、修改、读取、断点续训深入解析

    pytorch模型的定义、修改、读取、断点续训深入解析

    模型定义是深度学习中重要的一环,PyTorch提供了强大而灵活的工具和函数,使我们能够轻松定义各种类型的深度学习模型,通过深入理解模型定义的原理和应用,我们能够更好地理解和设计自己的模型,从而提升深度学习任务的性能和效果
    2024-03-03

最新评论