你将处理一个包含客户信息的数据集,文件名为 customer_data.csv,该文件包含以下列:customer_id(客户 ID)、age(年龄)、gender(性别)、purchase_amount(购买金额)、purchase_frequency(购买频率)、membership_type(会员类型)。
你的任务是完成以下数据挖掘任务:
读取 customer_data.csv 文件。
对数据进行基本的清洗,处理缺失值(可以选择删除包含缺失值的行或者用合适的值填充)。
分析不同会员类型的客户的平均购买金额和平均购买频率。
找出年龄和购买金额之间的相关性。
可视化不同性别客户的平均购买金额,使用柱状图展示。
要求
代码需要有适当的注释,方便理解每一步的操作。
对于可视化部分,使用 matplotlib 库。
对于数据处理和分析部分,使用 pandas 库。
示例数据集
假设 customer_data.csv 文件内容如下:

customer_id,age,gender,purchase_amount,purchase_frequency,membership_type
1,25,Male,100,2,Basic
2,30,Female,150,3,Standard
3,35,Male,200,4,Premium
4,22,Female,80,1,Basic
5,40,Male,250,5,Standard

代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 设置 matplotlib 支持中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 1. 读取数据
try:
    data = pd.read_csv('customer_data.csv')
except FileNotFoundError:
    print("未找到文件,请检查文件路径和文件名是否正确。")
    exit(1)

# 2. 数据清洗
# 删除包含缺失值的行
data = data.dropna()

# 3. 分析不同会员类型的客户的平均购买金额和平均购买频率
grouped = data.groupby('membership_type')
average_purchase_amount = grouped['purchase_amount'].mean()
average_purchase_frequency = grouped['purchase_frequency'].mean()
print("不同会员类型的平均购买金额:")
print(average_purchase_amount)
print("不同会员类型的平均购买频率:")
print(average_purchase_frequency)

# 4. 找出年龄和购买金额之间的相关性
correlation = data['age'].corr(data['purchase_amount'])
print(f"年龄和购买金额之间的相关性:{correlation}")

# 5. 可视化不同性别客户的平均购买金额
gender_grouped = data.groupby('gender')
average_gender_purchase = gender_grouped['purchase_amount'].mean()
plt.bar(average_gender_purchase.index, average_gender_purchase)
plt.xlabel('性别')
plt.ylabel('平均购买金额')
plt.title('不同性别客户的平均购买金额')
plt.show()

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐