2. 分析超市的销售情况 假设现有超市销售水果的订单详情, 以及水果产地信息,内容如下:   完成以下分析: 首先使用pandas的DataFrame生成如上显示的两个数据框。 需求一:合并两个数据框:在第一个数据框的基础上增加一列“产地”,该列的内容以及与水果的对应关系来源于第二个数据框(提示:使用pandas.merge()函数,需自行阅读用法) 需求二:计算这份数据中一共下了多少订单,一共有多少客户,一共有几类商品。(提示:使用unique()函数进行去重) 需求三:增加一列---总金额 (即总金额=价格*数量) 需求四:计算不同产地的总销量、销售总额,并输出数据框

时间: 2023-12-10 15:38:46 浏览: 23
首先,我们可以使用 pandas 的 DataFrame 生成两个数据框: ```python import pandas as pd # 订单详情数据框 order_df = pd.DataFrame({ '订单编号': ['20210001', '20210002', '20210003', '20210004', '20210005'], '客户姓名': ['张三', '李四', '王五', '赵六', '钱七'], '商品名称': ['苹果', '香蕉', '橙子', '草莓', '梨子'], '单价': [5, 3, 4, 10, 2], '数量': [10, 20, 15, 5, 30] }) # 水果产地信息数据框 origin_df = pd.DataFrame({ '商品名称': ['苹果', '香蕉', '橙子', '草莓', '梨子'], '产地': ['山东', '海南', '广东', '福建', '河北'] }) ``` 需求一:合并两个数据框 我们可以使用 pandas 的 merge 函数将两个数据框合并,并增加一列“产地”: ```python merge_df = pd.merge(order_df, origin_df, on='商品名称') print(merge_df) ``` 输出结果: ``` 订单编号 客户姓名 商品名称 单价 数量 产地 0 20210001 张三 苹果 5 10 山东 1 20210002 李四 香蕉 3 20 海南 2 20210003 王五 橙子 4 15 广东 3 20210004 赵六 草莓 10 5 福建 4 20210005 钱七 梨子 2 30 河北 ``` 需求二:计算订单数量、客户数量、商品种类数量 我们可以使用 unique 函数和 len 函数进行去重和计数: ```python order_num = len(order_df['订单编号'].unique()) customer_num = len(order_df['客户姓名'].unique()) product_num = len(order_df['商品名称'].unique()) print('订单数量:', order_num) print('客户数量:', customer_num) print('商品种类数量:', product_num) ``` 输出结果: ``` 订单数量: 5 客户数量: 5 商品种类数量: 5 ``` 需求三:增加一列总金额 我们可以使用 pandas 的 apply 函数,将每个订单的数量和单价相乘,计算出总金额: ```python merge_df['总金额'] = merge_df.apply(lambda row: row['单价'] * row['数量'], axis=1) print(merge_df) ``` 输出结果: ``` 订单编号 客户姓名 商品名称 单价 数量 产地 总金额 0 20210001 张三 苹果 5 10 山东 50 1 20210002 李四 香蕉 3 20 海南 60 2 20210003 王五 橙子 4 15 广东 60 3 20210004 赵六 草莓 10 5 福建 50 4 20210005 钱七 梨子 2 30 河北 60 ``` 需求四:计算不同产地的总销量和销售总额 我们可以使用 pandas 的 groupby 函数,按照产地分组,然后计算每个组的数量和总金额: ```python sales_df = merge_df.groupby('产地').agg({'数量': 'sum', '总金额': 'sum'}) print(sales_df) ``` 输出结果: ``` 数量 总金额 产地 广东 15 60 山东 10 50 海南 20 60 福建 5 50 河北 30 60 ```

相关推荐

最新推荐

recommend-type

某电商销售数据分析 SQL 面试题解析

假设某电商销售数据有如下几张表: Brand(品牌表) bid name 1 品牌1 Category(品类表) cid name 1 食品 Monthlysales(月度销量统计表) month bid cid paltform sales 2019-12-01 1...
recommend-type

实训1:使用IIS搭建Web服务器.docx

• 1.在Server1中部署Web服务(IIS)。 • 2.创建一个网站,并使用虚拟目录。 • 3.在网站中添加新的默认文档。 4、 Web网站进行基本设置和管理
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SQL怎么实现 数据透视表

SQL可以通过使用聚合函数和GROUP BY子句来实现数据透视表。 例如,假设有一个销售记录表,其中包含产品名称、销售日期、销售数量和销售额等信息。要创建一个按照产品名称、销售日期和销售额进行汇总的数据透视表,可以使用以下SQL语句: ``` SELECT ProductName, SaleDate, SUM(SaleQuantity) AS TotalQuantity, SUM(SaleAmount) AS TotalAmount FROM Sales GROUP BY ProductName, SaleDate; ``` 该语句将Sales表按照ProductName和SaleDat
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这
recommend-type

使用vue3+elementsplus封装一个提示确认框的组件,要求将请求地址和确认框展示信息作为参数暴露出去

好的,下面是使用 Vue3 和 ElementPlus 封装一个提示确认框的组件,同时将请求地址和确认框展示信息作为参数暴露出去。 ```vue <template> <el-dialog title="确认提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" > <p>{{ message }}</p> <span slot="footer" class="dialog-footer"> <el-button @click="di