1.1.4 · 建议 30 分钟 · 满分 27
电商平台用户行为分析系统的数据采集与处理流程设计
背景
某电商平台希望通过用户行为数据分析,了解用户购物习惯、购买倾向等,从而优化产品推荐系统,提高用户满意度和销售额。作为数据分析师,您需要设计一套全面的业务数据采集与处理流程,确保数据在进入用户行为分析系统之前经过严格的采集、清洗和预处理。 用户行为数据集 user_behavior_data.csv 包含字段:UserID、UserName、Age、Gender(Male/Female)、Location、LastLogin、PurchaseAmount、PurchaseCategory(电子产品、服装、食品等)、ReviewScore(1-5)、LoginFrequency(每日/每周/每月)。
工作任务
- 数据采集:从本地文件 user_behavior_data.csv 中读取数据,加载到 DataFrame,并打印前 5 条数据。
- 数据清洗与预处理:处理缺失值;进行数据类型转换;删除不合理的年龄、购买金额和评价评分;对购买金额和评价评分进行标准化;保存为 cleaned_user_behavior_data.csv。
- 数据统计:统计每个购买类别的用户数;统计不同性别的平均购买金额;统计不同年龄段(18-25、26-35、36-45、46-55、56-65、65 以上)的用户数。
素材预览
user_behavior_data.csv
UserID,UserName,Age,Gender,Location,LastLogin,PurchaseAmount,PurchaseCategory,ReviewScore,LoginFrequency 1,User_1,62,Female,Location_1,2023-06-10,118,Clothing,3,Monthly 2,User_2,65,Female,Location_2,2023-08-14,466,Electronics,4,Weekly ...
代码填空
import pandas
import numpy as np
import matplotlib.pyplot as plt
# 1. 数据采集
# 从本地文件中读取数据 2分
data =
print("数据采集完成,已加载到DataFrame中")
# 打印数据的前5条记录 2分
print()# 2. 数据清洗与预处理
# 处理缺失值(删除) 2分
data =
# 数据类型转换
data = (int) # Age数据类型转换为int 2分
data = (float) # PurchaseAmount数据类型转换为float 2分
data = (int) # ReviewScore数据类型转换为int 2分
# 处理异常值 2分
data = data[(.(18, 70)) &
(data['PurchaseAmount'] > 0) &
(.(1, 5))]
# 数据标准化
data['PurchaseAmount'] = (data['PurchaseAmount'] - ) / # PurchaseAmount数据标准化 2分
data['ReviewScore'] = (data['ReviewScore'] - ) / # ReviewScore数据标准化 2分
# 保存清洗后的数据 1分
('cleaned_user_behavior_data.csv', index=False)
print("数据清洗完成,已保存为 'cleaned_user_behavior_data.csv'")# 3. 数据统计
# 统计每个购买类别的用户数 2分
purchase_category_counts = .
print("每个购买类别的用户数:\n", purchase_category_counts)
# 统计不同性别的平均购买金额 2分
gender_purchase_amount_mean = ()['PurchaseAmount'].mean()
print("不同性别的平均购买金额:\n", gender_purchase_amount_mean)
# 统计不同年龄段的用户数 2分
bins = [18, 26, 36, 46, 56, 66, np.inf]
labels = ['18-25', '26-35', '36-45', '46-55', '56-65', '65+']
data['AgeGroup'] = pandas.(, right=False)
age_group_counts = data['AgeGroup'].value_counts().sort_index()
print("不同年龄段的用户数:\n", age_group_counts)