实现聚合客户订单

1. 获取订单数据

获取订单数据的操作步骤如下。

(1建立转换工程。使用Ctrl+N快捷键,创建【分组聚合客户订单】转换工程。

2创建CSV文件输入组件和获取订单数据。创建CSV文件输入组件(组件命名为“CSV文件输入(订单)”),如所示。设置参数,导入“order_list.csv”文件,并设置好字段参数。

 3)预览获取的订单数据。工作区上方的    图标,预览数据,如图所示,此时预览数据对话框的数据是客户在购买商品时,每天、每笔详细的订单数据。

2. 过滤和抽取订单数据

对获取的订单数据进行过滤和抽取,操作步骤如下。

1建立过滤和抽取数据组件和连接。创建过滤记录组件(组件命名为“过滤记录(客户ID非空和支付成功)”)、字段选择组件,用于筛选和抽取数据,并建立组件之间的连接,如图所示。

2)过滤掉客户ID为空和支付不成功的订单数据。在过滤记录(客户ID非空和支付成功)】组件中,设置参数,过滤掉客户ID为空和支付不成功的订单数据。

3)进行字段选择,保留需要的字段,去除多余的字段。在字段选择组件中,设置参数,仅保留customeridcustomermobileordernumpaytotalprice等字段,并分别改名为“客户ID”“客户手机号码”“order_num和“pay_totalprice,如图所示,丢弃其他与聚合客户订单无关的字段。

3. 聚合统计

对已进行过滤和抽取的订单数据进行聚合统计,操作步骤如下。

1建立聚合统计组件和连接。创建排序记录组件和分组(命名为“分组(按客户统计)”)组件,并建立组件之间的连接,如图所示。

 

 

2对客户ID进行排序。因为是分组聚合客户订单,所以必须对客户ID进行排序,即同一个客户ID的数据要连在一起,否则数据可能不正确。在【排序记录】组件中,设置客户ID字段按照升序进行排序。

3对客户的订单数和商品实际支付金额等字段进行分组聚合,统计各个客户的订单。设置【分组】组件参数,在图所示的【分组】对话框的【构成分组的字段】表中,设置【分组字段】为“客户ID”“客户手机号码”,即按照“客户ID”“客户手机号码”统计客户订单;在【聚合】表中,设置的参数如图所示。

 

 3. 装载和解读聚合客户订单数据

装载和解读聚合客户订单数据,操作步骤如下。

1) 建立装载结果数据组件和连接。创建排序记录组件(组件命名为“排序记录(按客户消费金额排序)”)和Excel输出(组件命名为“Excel输出(客户订单)”)组件,将聚合统计的各个客户订单数据输出至Excel文件中,并建立组件之间的连接,如图所示

 

2根据客户订单消费金额进行排序。在【排序记录(按客户销售金额排序)】组件中,设置客户消费金额字段按降序进行排序。

3将经过排序的各客户订单数据输出并装载至Excel文件中。在【Excel输出(客户订单)】组件中,设置参数,输出的Excel文件名为“无人售货机分组聚合客户订单.xls

 

4预览分组聚合客户订单结果数据。在【分组聚合客户订单】转换工程中,单击工作区上方的 运行图标,如图所示。

 5)解读结果数据。在结果数据中,根据“客户ID”“客户手机号码”关键字段,将“客户订单支付金额”“订单数”字段的数据分组聚合统计至“客户消费金额”“客户订单数”字段中,其中,“用户ID”为“220759”的客户消费金额最多,在无人售货机上共成功下单175笔,客户消费金额为880.6元。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,根据您的要求,我会使用客户订单详情“order_details.csv" 文件和无人售货机信息box_list.csv 文件中的数据,计算2018年售货机的商品销售金额,并按照从高到低的顺序进行排序。 首先,我们需要将这两个文件进行合并,以便能够计算每个售货机的商品销售金额。具体步骤如下: 1. 读取 order_details.csv 文件,获取每个订单的商品信息和售货机编号。 2. 读取 box_list.csv 文件,获取每个售货机的位置信息和编号。 3. 将两个数据集合并,以售货机编号为键,得到每个售货机的位置信息、商品信息和销售金额。 4. 计算每个售货机的商品销售金额,并按照从高到低的顺序进行排序。 下面是具体的 Python 代码实现: ```python import pandas as pd # 读取 order_details.csv 文件 order_details = pd.read_csv('order_details.csv') order_details['date'] = pd.to_datetime(order_details['date']) # 将日期转换为 datetime 类型 order_details = order_details[order_details['date'].dt.year == 2018] # 只保留 2018 年的数据 # 读取 box_list.csv 文件 box_list = pd.read_csv('box_list.csv') # 合并两个数据集 merged_data = pd.merge(order_details, box_list, on='box_id') # 计算每个售货机的商品销售金额 grouped_data = merged_data.groupby('box_id')['price'].sum().reset_index() grouped_data = pd.merge(grouped_data, box_list, on='box_id') grouped_data = grouped_data[['box_id', 'location', 'price']] grouped_data = grouped_data.sort_values(by='price', ascending=False) print(grouped_data) ``` 上述代码中,我们首先读取了 order_details.csv 和 box_list.csv 文件,并将两个数据集合并。然后,我们根据售货机编号进行分组,计算每个售货机的商品销售金额,并将结果按照销售金额从高到低进行排序。最后,我们输出了结果。 希望这个代码可以帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值