gitbook/Python自动化办公实战课/docs/342685.md
2022-09-03 22:05:03 +08:00

49 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 春节特别放送2用自顶至底的思路解决数据统计问题
你好,我是尹会生。今天是大年初二,先祝你春节快乐。
上节课我策划了一个项目作业你完成得怎么样了呢如果你对第一模块的内容掌握了60%,其实这道题你就能完成得差不多了,或者说至少会有一个思路。那么今天这节课,我也来给你提供一些我的解题思路和解题方法。
我们再来回顾下两道题目:
1. 统计出全年每种水果的总销售额。
2. 统计出每月销售数量排名Top 3的水果。
因为这两道题目都是需要在统计数据的前提下进行的一个是统计之后进行求和一个是统计之后进行排序。所以我们优先要做的就是统计全部文件所有sheet里的单元格数据。
**以第一****题****为例,可以按照自顶至底的思路拆分问题。**
什么是自顶至底呢?意思是分解问题的时候,先关注总体,再解决具体问题。我给你举个例子你会更容易理解。这是一个你熟悉的问题:怎样把大象装进冰箱?
你会马上想到,把大象装进冰箱分成三个步骤。你看,你不会关注冰箱是什么品牌,大象是什么品种,冰箱的容积如何,大象的体积有多大等等。这样思考的好处是你可以先对高层次的问题进行定义、设计、编码,再细节的问题,再其中的子任务或下一层次去解决。这样逐层去进行设计和编码能够让你的程序有更好的可读性。
那统计销售总数,我也可以把问题拆分成三个步骤。
* 第一步拆解Excel通过第二讲的循环功能取得每日销售数据。
* 第二步,读取每天里的每次销售金额数据。
* 第三步,将数据按照自己的算法(这里就是简单的累加)进行汇总。
接下来我带你具体看下每个步骤需要做什么。
首先,我们来取出每日销售数据。
你可以先从总销售额开始入手,思考如何拆解问题,。总销售额可以拆分成按月销售额的累加每月的销售数据可以存放到单独的文件中。月销售额可以拆分成日销售额的累加日销售额放在每个sheet中。
如果用python来实现总销售额的统计实现思路应该为通过pathlib库和for循环遍历文件读取每个Excel文件再通过xlrd库读取每个Excel里的每个sheet每个sheet里记录了每一天的销售数据,这样可以把每天的销售数据读取出来。
接着,我们来读取每一次销售数据。
由于Excel中除了销售金额还有日期等其他噪声数据我们只需要读取“水果名称”“销售金额”这两列必须数据就能实现统计销售总额的功能了。因此通过这两个数据所在的列取出“水果名称”“销售金额”这两列。
用python实现的话,就是使用for循环遍历每一行的水果再采用“字典”数据类型临时存放到Python的一种数据结构中。为什么要使用“字典”呢在第三讲我给你讲解过,“字典”适合记录有映射关系的一对或多对数据。
最后,将数据汇总在一起。
根据需求,销售的金额只需要记录汇总的金额就可以实现最终要求,也就是统计全年销售额的任务了。所以这一步具体做法就是:把字典中可以对每种水果的每次销售金额累加存放,就可以得到当日每种水果销售总金额了。
第二道题那如何来实现Top3功能呢?
这两道问题的处理思路非常相似都是需要处理每个月的销售额但是第一个问题统计全年销售额需要将12个月的销售数据进行累加。第二个问题需要对每个月的销售数据进行从大到小的排序前三位的就是“水果销售Top3”了。
你的思路和想法是什么呢可以在留言区分享一下我们一起交流、讨论。在2月16日也就是大年初五这一天我会把完整答案给你分享出来供你参考。