python淘宝数据分析(python怎么做数据分析)

题目要求

为了知道消费者季节性消费习惯,阿珍想要统计一月份卖得最好的明星产品,可是一个一个商品统计实在是很麻烦,这该怎么办呢?

聪明的阿珍想要的好办法,可以通过Python读取“2019年1月销售订单.xlsx”工作薄,获取“销售订单数据”工作表,计算得出工作表内每个商品当月的销售额

接着从所有商品销售额中,找到当月销售额最高的商品,最后输出销售额最高商品品和销售额。

例如:明星产品是:XXX,一月总共销售出XXX元

思路:

1、 导入openpyxl模块

2、使用openpyxl.load_workbook()函数读取”2019年1月销售订单.xlsx”工作簿并赋值给变量wb

记得添加data_only=True参数打开工作簿,获取公式计算后的值

3、通过工作簿对象wb获取名为“销售订单数据”的工作表对象,并赋值给变量orderSheet,再定义一个空字典用来存储商品和其对应的销售额

4、遍历订单数据每一行,取出第3列的商品名并赋值给productName,判断获取到的productName是”商品名”时使用continue跳过本行

5、获取订单总价I列的索引,根据索引获取本行订单总价并赋值给变量price,判断当商品名还不在结果字典sellData中时给这个商品在sellData中设置初始值为0,将本行总价加到结果字典sellData对应商品名的销售额中

6、定义一个初始值为0的变量maxSold, 表示销售的最大值,定义一个空字符串变量maxName, 表示最大值的商品名

7、遍历结果字典sellData的键,也就是商品名,取出商品名对应的销售额赋值给变量productSold,判断当前商品销售额大于记录的最大销售额maxSold时将maxSold替换成新的最大销售额将maxName替换成新的最大销售额对应的商品名

8、按格式输出结果: 明星产品是:{商品名},一月总共销售出{最大销售额}元

提示:

字典(dict)

为了方便统计,在这里我们使用一个字典(dict)来存储每个商品的销售总额。

存储的结构如下图所示,商品名作为键,销售额作为值来进行存储。

python淘宝数据分析(python怎么做数据分析)

解析:

Step.1

导入openpyxl模块

# TODO 导入openpyxl模块

import openpyxl

Step.2

使用openpyxl.load_workbook()函数读取”2019年1月销售订单.xlsx”工作簿并赋值给变量wb

记得添加data_only=True参数打开工作簿,获取公式计算后的值

# TODO 使用openpyxl.load_workbook()函数读取”2019年1月销售订单.xlsx”工作簿并赋值给变量wb

# TODO 记得添加data_only=True参数打开工作簿,获取公式计算后的值

wb = openpyxl.load_workbook(“2019年1月销售订单.xlsx”,data_only=True)

Step.3

通过工作簿对象wb获取名为“销售订单数据”的工作表对象,并赋值给变量orderSheet,再定义一个空字典用来存储商品和其对应的销售额

# TODO 通过工作簿对象wb获取名为“销售订单数据”的工作表对象,并赋值给变量orderSheet

orderSheet = wb[“销售订单数据”]

# TODO 定义一个空字典用来存储商品和其对应的销售额

sellData = {}

Step.4

遍历订单数据每一行,取出第3列的商品名并赋值给productName,判断获取到的productName是”商品名”时使用continue跳过本行

# TODO 遍历订单数据每一行

for rowData in orderSheet.rows:

# TODO 取出第3列的商品名并赋值给productName

productName = rowData[2].value

# TODO 判断获取到的productName是”商品名”时

if productName == “商品名”:

# TODO 使用continue跳过本行

continue

Step.5

获取订单总价I列的索引,根据索引获取本行订单总价并赋值给变量price,判断当商品名还不在结果字典sellData中时给这个商品在sellData中设置初始值为0,将本行总价加到结果字典sellData对应商品名的销售额中

# TODO 获取订单总价I列的索引

priceIndex = openpyxl.utils.cell.column_index_from_string(“I”) – 1

# TODO 根据索引获取本行订单总价并赋值给变量price

price = rowData[priceIndex].value

# TODO 判断当商品名还不在结果字典sellData中时

if productName not in sellData.keys():

# TODO 给这个商品在sellData中设置初始值为0

sellData[productName] = 0

# TODO 将本行总价加到结果字典sellData对应商品名的销售额中

sellData[productName] = sellData[productName] + price

Step.6

定义一个初始值为0的变量maxSold, 表示销售的最大值,定义一个空字符串变量maxName, 表示最大值的商品名

# TODO 定义一个初始值为0的变量maxSold, 表示销售的最大值

maxSold = 0

# TODO 定义一个空字符串变量maxName, 表示最大值的商品名

maxName = “”

Step.7

遍历结果字典sellData的键,也就是商品名,取出商品名对应的销售额赋值给变量productSold,判断当前商品销售额大于记录的最大销售额maxSold时将maxSold替换成新的最大销售额将maxName替换成新的最大销售额对应的商品名

# TODO 遍历结果字典sellData的键,也就是商品名

for productName in sellData.keys():

# TODO 取出商品名对应的销售额赋值给变量productSold

productSold = sellData[productName]

# TODO 判断当前商品销售额大于记录的最大销售额maxSold时

if productSold > maxSold:

# TODO 将maxSold替换成新的最大销售额

maxSold = productSold

# TODO 将maxName替换成新的最大销售额对应的商品名

maxName = productName

Step.8

按格式输出结果: 明星产品是:{商品名},一月总共销售出{最大销售额}元

# TODO 按格式输出结果: 明星产品是:{商品名},一月总共销售出{最大销售额}元

print(f”明星产品是:{maxName},一月总共销售出{maxSold}元”)

完整代码:

# TODO 导入openpyxl模块
import openpyxl

# TODO 使用openpyxl.load_workbook()函数读取"2019年1月销售订单.xlsx"工作簿并赋值给变量wb 
# TODO 记得添加data_only=True参数打开工作簿,获取公式计算后的值
wb = openpyxl.load_workbook("2019年1月销售订单.xlsx",data_only=True)

# TODO 通过工作簿对象wb获取名为“销售订单数据”的工作表对象,并赋值给变量orderSheet
orderSheet = wb["销售订单数据"]

# TODO 定义一个空字典用来存储商品和其对应的销售额
sellData = {}

# TODO 遍历订单数据每一行
for rowData in orderSheet.rows:
    # TODO 取出第3列的商品名并赋值给productName
    productName = rowData[2].value
    
    # TODO 判断获取到的productName是"商品名"时
    if productName == "商品名":
        # TODO 使用continue跳过本行
        continue
    
    # TODO 获取订单总价I列的索引
    priceIndex = openpyxl.utils.cell.column_index_from_string("I") - 1
    # TODO 根据索引获取本行订单总价并赋值给变量price
    price = rowData[priceIndex].value
    
    # TODO 判断当商品名还不在结果字典sellData中时
    if productName not in sellData.keys():
        # TODO 给这个商品在sellData中设置初始值为0
        sellData[productName] = 0
    
    # TODO 将本行总价加到结果字典sellData对应商品名的销售额中
    sellData[productName] = sellData[productName] + price

# TODO 定义一个初始值为0的变量maxSold, 表示销售的最大值
maxSold = 0
    
# TODO 定义一个空字符串变量maxName, 表示最大值的商品名
maxName = ""

# TODO 遍历结果字典sellData的键,也就是商品名
for productName in sellData.keys():
    # TODO 取出商品名对应的销售额赋值给变量productSold
    productSold = sellData[productName]
    
    # TODO 判断当前商品销售额大于记录的最大销售额maxSold时
    if productSold > maxSold:
        # TODO 将maxSold替换成新的最大销售额
        maxSold = productSold
        # TODO 将maxName替换成新的最大销售额对应的商品名
        maxName = productName

# TODO 按格式输出结果: 明星产品是:{商品名},一月总共销售出{最大销售额}元
print(f"明星产品是:{maxName},一月总共销售出{maxSold}元")

关注点赞收藏不迷路,私信共享学习资料,共同学习,共同进步。

文章来源于互联网,整理者:万财小编,侵权请联系我们删除,如若转载,请注明出处:https://www.wancaicc.com/15085.html

(0)
上一篇 2022年 11月 29日 15:29:06
下一篇 2022年 11月 29日 15:32:52

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注