python作业----第二次小考(利用豆包ai工具完成电商平台商品销售数据分析案例)

讯问过程:

帮我完成一个电商平台商品销售数据分析案例,使用python即可

豆包分析结果:

一、数据获取

目标:从数据库或文件中获取原始销售数据
数据来源:MySQL数据库(示例)
字段说明:

• order_id:订单ID

• product_id:商品ID

• category:商品类别

• price:商品单价

• quantity:购买数量

• user_id:用户ID

• purchase_date:购买日期

• region:用户所在地区

• payment_method:支付方式

代码示例:

import pymysql
import pandas as pd

# 连接数据库
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='ecommerce'
)

# 读取数据
query = """
SELECT 
    order_id, product_id, category, price, quantity, 
    user_id, purchase_date, region, payment_method
FROM sales
"""
data = pd.read_sql(query, conn)
conn.close()



二、数据预处理

目标:清洗、转换数据,确保分析准确性

1. 数据清洗• 缺失值处理:

# 检查缺失值
print(data.isnull().sum())

# 填充数值型缺失值(如price)
data['price'].fillna(data['price'].median(), inplace=True)

# 删除类别型缺失值(如category)
data.dropna(subset=['category'], inplace=True)
• 异常值处理:
# 用箱线图检测price异常值
import matplotlib.pyplot as plt
plt.boxplot(data['price'])
plt.show()

# 删除price为负数的记录
data = data[data['price'] > 0]


2. 数据转换• 时间格式转换:

data['purchase_date'] = pd.to_datetime(data['purchase_date'])
data['month'] = data['purchase_date'].dt.month_name()  # 提取月份名称
• 类别编码:
# 独热编码(如payment_method)
data = pd.get_dummies(data, columns=['payment_method'])

# 标签编码(如region)
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data['region'] = le.fit_transform(data['region'])


三、数据分析

1. 销售趋势分析

• 按时间统计销售额:

monthly_sales = data.resample('M', on='purchase_date')['price'].sum()
monthly_sales.plot(kind='line', figsize=(10, 5))
plt.title('Monthly Sales Trend')
plt.xlabel('Date')
plt.ylabel('Sales')
plt.show()


2. 商品销售排名

• TOP 10畅销商品:

top_products = data.groupby('product_id')['quantity'].sum().sort_values(ascending=False).head(10)
print(top_products)


3. 用户行为分析

• 用户购买频率:

user_purchase_count = data['user_id'].value_counts()
print(user_purchase_count.head())  # 高频用户


4. 地域分析

• 各地区销售额对比:

regional_sales = data.groupby('region')['price'].sum().sort_values(ascending=False)
regional_sales.plot(kind='bar', figsize=(10, 5))
plt.title('Sales by Region')
plt.xlabel('Region')
plt.ylabel('Sales')
plt.show()


5. 商品关联分析• 使用Apriori算法挖掘关联规则:

from mlxtend.frequent_patterns import apriori, association_rules

# 构造购物篮数据
basket = data.groupby('order_id')['product_id'].apply(list).reset_index()

# 转换为二进制矩阵
from mlxtend.preprocessing import TransactionEncoder
te = TransactionEncoder()
te_ary = te.fit(basket['product_id']).transform(basket['product_id'])
df_basket = pd.DataFrame(te_ary, columns=te.columns_)

# 挖掘频繁项集
frequent_items = apriori(df_basket, min_support=0.01, use_colnames=True)

# 生成关联规则
rules = association_rules(frequent_items, metric='lift', min_threshold=1.5)
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']].head())


四、可视化与报告

推荐图表:

1. 折线图:展示销售额随时间变化趋势

2. 柱状图:对比不同商品或地区的销售表现

3. 热力图:显示不同时间段的销售高峰

4. 词云图:分析用户搜索关键词或商品类别示例代码:

import seaborn as sns

# 绘制热力图(时间与销售额的关系)
sales_by_month = data.groupby('month')['price'].sum().reset_index()
plt.figure(figsize=(10, 5))
sns.barplot(x='month', y='price', data=sales_by_month)
plt.title('Sales by Month')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()


五、结果应用

1. 库存优化:对畅销商品增加库存,滞销商品降价促销。

2. 精准营销:

◦ 向高频用户推送专属优惠券。

◦ 根据地域偏好调整广告投放策略。

3. 商品推荐:基于关联规则,在商品详情页展示“购买此商品的用户还买了...”。

六、注意事项

1. 数据隐私:避免直接使用用户敏感信息(如身份证号)。

2. 时效性:分析需定期更新,确保策略与市场变化同步。

3. 可解释性:复杂模型(如深度学习)需配合业务逻辑解释结果。

通过以上步骤,可系统性地完成电商销售数据分析,并为业务决策提供支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值