1.数据分组

源数据表如下所示:

1.1 分组键是列名

分组键是列名时直接将某一列或多列的列名传给groupby()方法,groupby()方法就会按照这一列或多列进行分组。按照一列进行分组

import pandas as pd

df = pd.DataFrame(pd.read_excel("Client_Data.xlsx"))

print(df)

#按照客户分类对数据进行分组

print (df.groupby("客户分类").count())

根据客户分类对所有数据进行分组,然后对分组以后的数据分别进行计数运算,最后进行合并,如下:

源数据展示及按客户分类的结果按照多列进行分组

import pandas as pd

df = pd.DataFrame(pd.read_excel("Client_Data.xlsx"))

print(df)

#按照多列对数据进行分组

print (df.groupby(["客户分类","区域"]).count())

执行结果如图:

按照多列对数据进行分组

1.2 分组键是Series

把DataFrame的其中一列取出来就是一个Series,比如df["客户分类"]就是一个Series。

分组键是列名与分组键是Series的唯一区别就是,给groupby()方法传入了什么,其他都一样。可以按照一个或多个Series进行分组,分组以后的汇总计算也是完全一样的,也支持对分组以后的某些列进行汇总计算。

#按单个Series进行分组

print (df.groupby(df["客户分类"]).count())

#按单个Series进行分组

print (df.groupby(df["客户分类"],df["区域"]).count())

1.3 神奇的aggregate方法

aggregate的第一个神奇之处在于,一次可以使用多种汇总方式,比如下面的例子先对分组后的所有列做计数汇总运算,然后对所有列做求和汇总运算。

import pandas as pd

df = pd.DataFrame(pd.read_excel("Client_Data.xlsx"))

#对数据进行计数汇总与求和汇总运算

print(df.groupby("客户分类").aggregate(["count","sum"]))

对数据进行计数汇总与求和汇总运算

aggregate的第二个神奇之处在于,可以针对不同的列做不同的汇总运算,比如,想看不同类别的用户有多少,那么对用户ID进行计数;想看不同类别的用户在7/8/9的销量,则需要对销量进行求和。

import pandas as pd

df = pd.DataFrame(pd.read_excel("Client_Data.xlsx"))

print(df.groupby("客户分类").aggregate({"用户ID":"count","7月销量":"sum","8月销量":"sum","9月销量":"sum"}))

对不同的列做不同的汇总运算

1.4 对分组后的结果重置索引

为了便于对分组结果进行进一步处理和分析,需要把非标准形式转化为标准的DataFrame形式,利用的方法就是重置索引reset_index()方法。

import pandas as pd

df = pd.DataFrame(pd.read_excel("Client_Data.xlsx"))

print(df.groupby("客户分类").count())

#利用reset_index()重置索引

print(df.groupby("客户分类").count().reset_index())

利用reset_index()重置索引

2.数据透视表

Python中的数据透视表用到的是pivot_table()方法,其全部参数如下:

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

#data:表示要做数据透视表的整个表

#values:对应excel中值那个框

#index:对应excel中行那个框

#columns:对应excel中列那个框

#aggfunc:表示对values的计算类型

#fill_value:表示对空值的填充值

#margins:表示是否显示合计列

#dropna:表示是否删除缺失,如果为真时,则把一整行全作为缺失值删除

#margins_name:表示合计列的列名

实例,客户分类作为index,区域作为columns,用户ID作为values,对values执行count运算:

import pandas as pd

df = pd.DataFrame(pd.read_excel("Client_Data.xlsx"))

#客户分类作为index,区域作为columns,用户ID作为values,对values执行count运算

print(pd.pivot_table(df,values="用户ID",index="客户分类",columns="区域",aggfunc='count',margins=True))

执行结果如下:

透视表运算结果

可用margins_name对合计列名称"All"进行修改。

可用fill_value对缺失值进行填充。

可用reset_index()对透视表结果进行重置索引。

python做数据透视表_利用Python进行数据分组/数据透视表相关推荐

  1. python做一个星座分析_利用python输出星座的方法

    利用python输出星座的方法 发布时间:2020-09-23 12:12:36 来源:亿速云 阅读:84 作者:小新 这篇文章将为大家详细讲解有关利用python输出星座的方法,小编觉得挺实用的,因 ...

  2. python做一个小游戏_利用python做个小游戏

    从本期开始,我们将利用几天的时间用python来做个小游戏,当然,在做小游戏之前,我们必须学会一个做小游戏的第三方库--pygame.可能有人会说,python不擅长或者说不适合用来做游戏,的确是这样 ...

  3. 用python做一个购物车编程_利用python实现简单的循环购物车功能示例代码

    本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = ...

  4. python经纬度获取县名_利用 Python 批量获取县镇运输距离

    起因 最近做规划项目,领导让查出某几个市的所有乡镇级行政区域,距离所在县级行政中心的交通运输距离.想着也不是啥难事儿,高德地图一搜就有. 当我把各市行政区划统计完,发现一共有五百多个乡镇,意味着要在地 ...

  5. python怎么读取sav格式_利用Python读取外部数据文件

    利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...

  6. 钉钉python 自动发消息软件_利用Python自动发送钉钉数据消息,一个简单的上手小项目...

    现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上都能快速有效的被阅读,打开率会比邮件高上不少.所以准备使用钉钉来播报平台每日的成交额,并附上一些鼓励的话和图片.起到一个激励团队的作用 ...

  7. python做大数据分析入门_独家|Python数据分析入门指南 - 大数据123 | 大数据导航网...

    有一个朋友最近问到这个问题,我觉得把它公开出来对其他人也会有帮助.这是给完全不了解Python而想找到从零到一的最简单的路径的人的建议: 1. 在这里(https://www.continuum.io ...

  8. python爬去百度文库_利用Python语言轻松爬取数据[精品文档]

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  9. python删除数据库的数据完整代码_利用python操作小程序云数据库实现简单的增删改查...

    不止python,你可以利用任何语言那实现通过http请求来操作你自己的小程序云数据库了 背景 也是在最近吧,小程序更新了云开发 HTTP API 文档,提供了小程序外访问云开发资源的能力,使用 HT ...

  10. python爬取百度文库_利用Python语言轻松爬取数据

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

最新文章

  1. 用linux集成电路版图设计,集成电路版图设计教程2012版本
  2. 如何摆脱JavaFX中的重点突出显示
  3. CCF - 201703-1 - 分蛋糕
  4. 计算机主机内部由什么组成,计算机是由主机和什么组成的?
  5. Python查找所有类似于123-45-67+89 = 100的组合
  6. PyTorch并行与分布式(二)分布式通信包torch.distributed
  7. 区块链 DAG分布式账本技术 DAG数据结构和基于区块的数据结构的差别 优势
  8. xml建模包括以下_数据挖掘--建模与挖掘的结合
  9. NIO中的ByteBuffer读取中文错误的解决方法:MalformedInputException
  10. mysql.5.7 declare_MySQL-5.7 游标及DECLARE
  11. pr计算机相关知识,影视制作技术第一讲认识premiere(pr)与视频基础知识.ppt
  12. iperf3网络测速
  13. Guake安装配置:下拉式Gnome桌面终端
  14. WUSTOJ 1275: 男神的逆袭(Java)
  15. 关于百度【搜索RefererAPI】开放接口根据eqid查询【搜索关键字】的实现
  16. 虚拟化性能计数器需要至少一个可正常使用的计数器。 模块“VPMC”启动失败。 未能启动虚拟机。
  17. 复旦大学教授肖仰华:ChatGPT 浪潮下,面向大模型如何做数据治理?
  18. 湘大学生住宿物业管理情况调查(转自《文心报》)
  19. 渗透测试常用文件传输方法-Linux篇(如何向Linux服务器中上传文件?) (゚益゚メ) 渗透测试
  20. 前端性能优化-对图片进行后压缩发向后端

热门文章

  1. oracle中连续天数计算,Oracle计算连续天数,计算连续时间,Oracle连续天数统计
  2. css基础知识(尺寸、字体、文本、背景、列表)
  3. 中国风?古典系?AI中文绘图创作尝鲜!⛵
  4. 记录一个非常实用的gif制作工具licecap
  5. 湖南科技大学c语言上机题库,2018年湖南科技大学计算机科学与工程院824C语言程序设计与数据结构综合之C程序设计考研核心题库...
  6. 基于AD9854个和MSP430的波形发生器
  7. 线性代数系列讲解第七篇 正交向量及正交空间
  8. 逆水寒捏脸服务器维护,逆水寒捏脸数据分享_全职业捏脸数据一览
  9. 【b站雅思笔记】Charlie有好好学习 - 雅思机经8-14
  10. python的江湖世界