python分类汇总_数据分析番外篇13_利用Python实现分类汇总
自己建立了一个数据分析兴趣小组群,在分享了一篇有关Python的介绍后,这两天大家的学习热情高涨,于是纷纷将自己的问题扔到群里诱使大家来解决,比如:如何代码实现去除文本里面的多余空格,如何将一个27万行的数据一次导入Excel等。有个成员提出利用SQL语言来实现一个2万行数据的分类汇总,可是俺不会SQL,就想试试用Python能否实现。
首先来看看数据吧(该数据没有脱敏,大家看看就好),数据包含了5列,2万多行,希望能根据地区对销售金额和毛利进行汇总。
分类汇总后达到如下效果:
其实精通Excel的同学知道这个很容易,直接来个透视表就搞定了,但是使用Python能不能也搞定呢?让我们一起来踩坑,跳坑吧。
首先看看数据结构,很明显这是个完美的dataframe,所以可以利用Pandas来对其进行处理,将数据读入,然后使用groupby就能实现分类汇总了。原理很简单,但是过程充满了艰辛。首先导入数据,然后查看一下Dataframe结构
看起来数据导入比较顺利,数据结构也算工整,可以开始进行分类汇总了
使用groupby后,居然是这个结果!说好的,groupby会直接忽略掉文本,而直接将数值进行分组操作吗?为啥“销售金额”不见了,而且“店铺”和“CLASS”这个两个包含文本的列也被强行汇总求和了?
看到这结果,首先想到的是不让“店铺”和“CLASS”参加groupby,通过索引,只将“地区”、“销售金额”、“毛利”进行分类汇总。
这依旧不是我们想要的结果呀!!!为啥?
仔细观察了一下数据,原来在原始数据文件中,所有的数值型数据都有千位符逗号,可能是Python将其误认成了文本数据,让我们将千位符去掉再试试。
嗯,这次有点模样了,可以将这个数据再写回CSV文件
打开csv文件一看,这是什么鬼,一堆乱码而且格式也不对呀!
这应该是code制问题,好吧试了各种code制问题都没解决,在万般无奈的情况,在网上找到一个code制,尝试了一下居然成功了!
到此使用Python完成了一次Excel中透视表类似的工作。
感受是看是简单的代码,但是因为没有系统学习和扎实的基本功,各种报错。看来如果需要应用代码解决问题,还需要打牢基础,熟悉编程语言的各种属性。
注:
1. 细心的读者可能发现了,代码中导入数据是一个是Data.csv,一个是data_02.csv。data_02.csv是为了复现问题重做的一个数据源
2. 其实还有一个问题后来没有复现,csv中数据如果是负值,其显示为括号+红色字体,这个也会被识别成字符,但是做data_02.csv时,这个问题没有复现
3. 当要汇总的列数据被转换成了数值后,直接使用Groupby就能得到结果。
python分类汇总_数据分析番外篇13_利用Python实现分类汇总相关推荐
- OpenCV-Python实战(番外篇)——利用 KNN 算法识别手写数字
OpenCV-Python实战(番外篇)--利用 KNN 算法识别手写数字 前言 手写数字数据集 MNIST 介绍 基准模型--利用 KNN 算法识别手写数字 改进模型1--参数 K 对识别手写数字精 ...
- OpenCV-Python实战(番外篇)——利用 SVM 算法识别手写数字
OpenCV-Python实战(番外篇)--利用 SVM 算法识别手写数字 前言 使用 SVM 进行手写数字识别 参数 C 和 γ 对识别手写数字精确度的影响 完整代码 相关链接 前言 支持向量机 ( ...
- OpenCV-Python实战(番外篇)——利用 K-Means 聚类进行色彩量化
OpenCV-Python实战(番外篇)--利用 K-Means 聚类进行色彩量化 前言 利用 K-Means 聚类进行色彩量化 完整代码 显示色彩量化后的色彩分布 相关链接 前言 K-Means 聚 ...
- OpenCV-Python实战(番外篇)——利用增强现实制作美颜挂件,让你的照片与众不同
OpenCV-Python实战(番外篇)--利用增强现实制作美颜挂件,让你的照片与众不同 前言 基于 Snapchat 的增强现实 胡子挂件融合 完整代码 眼镜挂件融合 完整代码 相关链接 前言 在博 ...
- hg226g 虚拟服务器,华为HG8245H救砖番外篇之利用JTAG完成硬件初始化
原文发在我的bloghttp://blog.csersoft.net/archives/196 前言 前几天使用UBoot恢复mtd分区时因为误操作导致flash全部被擦除.这下设备上电时连Start ...
- 魔方cfop公式软件_【番外篇】CFOP玩法进阶技巧与衍生解法介绍大全!
本篇文章汇总了在CFOP玩法之上衍生出的更高级的解法,目的是向大家分享更多的魔方知识,并不涉及任何具体的公式教程,如对某些方法感兴趣,可自行了解 (★注意:以下分解图不表示先后顺序,"+&q ...
- Python爬虫自学系列(番外篇一):代理IP池
前言 你在爬虫的时候,是否会经常的担心IP被封掉呢? 或者说,在使用免费IP的时候,并不知道那个IP是不是已经被封了. 对于大批量的爬取数据的时候,我在第五篇做并发爬虫的时候就发现了,第一篇提供的那个 ...
- (亲测)1分钟破解IDM权限,傻瓜都能学会的破解方法(番外篇:利用破解工具直接破解IDM)...
Internet Download Manager (IDM)是比较好用的一款下载工具~ 上一节我讲到一种利用修改防火墙来进行阻止访问服务器,请参看这篇文章(亲测)躺着破解IDM下载权限,治疗不用破解 ...
- ubuntu导入python的包_在ubuntu环境下怎么利用python将数据批量导入数据hbase
斯蒂芬大帝 能够单条导入就能够批量导入配置 thriftpython使用的包 thrift个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到pr ...
最新文章
- 65 Airflow组成部分的概念介绍
- 剑指offer-有序二维数组中的查找
- 已经被处理的消息不能丢
- 200 多个 npm 包被攻击,Azure 开发者请注意
- 【java学习之路】(数据结构篇)001.数组
- [转载] numpy总结
- 金融IT和ERP,哪个更有前途?
- ASP.NET AJAX中防止用户多次提交页面
- 服务器设置客户端网页安装,在Windows 7环境下安装并配置web、SSH、E-mail、FTP等服务器...
- 移动周刊第 176 期:Android 知识梳理
- 前端基础入门之css less
- 2009-2012年中国网络游戏市场投资分析及前景预测报告
- 黑龙江伊春现受伤雄性东北虎 目前已被成功救治
- mysql左链sql去重_MySql去重
- WPF3D贴图:用C#搓一个地球
- SQLServer从mdf和ldb还原数据库
- 理解快速排序 | 打通算法学习的任督二脉
- WIN10打印机显示服务器脱机,win10网络打印机显示脱机处理方法
- 【文本匹配】之 经典ESIM论文详读
- 创业公司如何公平分配股权