一、题目
附件drug. order_ detai 1.xlsx是某连锁药店销售数据,请使用pandas和numpy分析药店的营业数据:
(1)读取附件中excel文件drug._order_detail_1.xlsx 中的数据;
(2)计算所有分店的总销售额并打印输出;
(3)增加“销售额”列,其中,销售额=价格*销量;
(4)按分店统计不同分店销售额的最小值、最大值、平均值、并打印输出;
(5)输出效果如下所示,其中,*号代表具体统计的数。
二、题目分析
对于Excel文件的处理,常见的就是pandas库,我们引入pandas库之后通过read_excel方法就可以读取到指定的Excel文件,注意就是要指定sheet的名称。然后我们将其转化为DataFrame类型进行计算。然后我们计算所有分店的总销售额,只需要遍历所有分店,然后用那一行的销量乘以那一行的单价,然后每次相加就可以得出结果,然后通过print进行输出。然后添加列,其实有一种简单的方法,就是当你df[‘销售额’]的时候,系统检测到Excel文件中并没有销售额这一列,那么就会自动添加上去,然后只需要指定它的值为对应的价格乘以销量即可。之后通过numpy的min,max和mean函数就可以轻松求的最大值最小值和平均值了。
三、代码
import pandas as pd import numpy as np import xlrd data=pd.read_excel('drug_order_detai_1.xlsx',sheet_name='drug_order_detail2') df=pd.DataFrame(data) row,col=df.shape sum=0 list=[] for i in range(0,row): sum+=int(df.loc[i]['销量'])*int(df.loc[i]['价格']) print("所有分店总销售额是:"+str(sum)) df['销售额'] = df['价格'] * df['销量'] print(pd.DataFrame(df.groupby('分店')['销售额'].agg([np.min,np.max,np.mean])))
四、实验结果
pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。