自己建立了一个数据分析兴趣小组群,在分享了一篇有关Python的介绍后,这两天大家的学习热情高涨,于是纷纷将自己的问题扔到群里诱使大家来解决,比如:如何代码实现去除文本里面的多余空格,如何将一个27万行的数据一次导入Excel等。有个成员提出利用SQL语言来实现一个2万行数据的分类汇总,可是俺不会SQL,就想试试用Python能否实现。
首先来看看数据吧(该数据没有脱敏,大家看看就好),数据包含了5列,2万多行,希望能根据地区对销售金额和毛利进行汇总。
分类汇总后达到如下效果:
其实精通Excel的同学知道这个很容易,直接来个透视表就搞定了,但是使用Python能不能也搞定呢?让我们一起来踩坑,跳坑吧。
首先看看数据结构,很明显这是个完美的dataframe,所以可以利用Pandas来对其进行处理,将数据读入,然后使用groupby就能实现分类汇总了。原理很简单,但是过程充满了艰辛。首先导入数据,然后查看一下Dataframe结构
看起来数据导入比较顺利,数据结构也算工整,可以开始进行分类汇总了
使用groupby后,居然是这个结果!说好的,groupby会直接忽略掉文本,而直接将数值进行分组操作吗?为啥“销售金额”不见了,而且“店铺”和“CLASS”这个两个包含文本的列也被强行汇总求和了?
看到这结果,首先想到的是不让“店铺”和“CLASS”参加groupby,通过索引,只将“地区”、“销售金