【客户购物行为数据集】shopping_behavior_updated.csv
加载数据print('数据基本信息:')# 查看数据集行数和列数# 短表数据(行数少于100且列数少于20)查看全量数据信息print('数据全部内容信息:')else:# 长表数据查看数据前几行信息print('数据前几行内容信息:')
一、引言
该数据集发布于2025年10月2日,聚焦客户购物行为,涵盖客户人口统计(年龄、性别、位置)、购买详情(所购商品、类别、尺寸、颜色、季节、购买金额)、客户参与度(订阅状态、评分、折扣、优惠码)及交易详情(配送类型、支付方式、购买频率、历史购买记录)等核心信息,可用性评分达10.00,采用ODC公共领域贡献与许可协议(PDDL) ,可应用于客户细分与画像、购物行为分析、预测建模(如购买金额或频率)、推荐系统构建、营销及折扣策略优化等场景。
下载地址1:https://pan.quark.cn/s/58fd20be3878
下载地址2: https://pan.baidu.com/s/1kT445Yi5CL8hW2XGWkayzQ?pwd=j7rn 提取码: j7rn
数据集基础信息
| 信息类别 | 具体内容 | 关键说明 |
|---|---|---|
| 可用性评分 | 10.00 | 满分评分,表明数据集在完整性、易用性、准确性等方面表现优异 |
| 许可协议 | ODC Public Domain Dedication and Licence(PDDL) | 公共领域协议,允许用户自由使用、分享、修改数据,无版权限制 |
| 预期更新频率 | Never(无) | 数据集为静态数据,后续不会进行定期或不定期更新 |
| 数据文件信息 | 文件名:shopping_behavior_updated.csv;文件大小:416.61 kB | 小体积文件,便于快速加载和初步分析,降低存储与计算成本 |
| 关联标签/工具 | Data Analytics(数据分析)、pandas | 提示数据集的核心应用领域,及常用的数据分析工具 |

二、数据概述
import pandas as pd
# 加载数据
data = pd.read_csv('/shopping_behavior_updated.csv')
print('数据基本信息:')
data.info()
# 查看数据集行数和列数
rows, columns = data.shape
if rows < 100 and columns < 20:
# 短表数据(行数少于100且列数少于20)查看全量数据信息
print('数据全部内容信息:')
print(data.to_csv(sep='\t', na_rep='nan'))
else:
# 长表数据查看数据前几行信息
print('数据前几行内容信息:')
print(data.head().to_csv(sep='\t', na_rep='nan'))
2.1 数据规模
该数据集包含 3900 条记录,涵盖了 18 个与客户购物行为相关的字段。
2.2 字段说明
| 字段名 | 含义 | 数据类型 |
|---|---|---|
Customer ID |
客户编号 | int64 |
Age |
客户年龄 | int64 |
Gender |
客户性别 | object |
Item Purchased |
购买的商品 | object |
Category |
商品类别 | object |
Purchase Amount (USD) |
购买金额(美元) | int64 |
Location |
购买地点 | object |
Size |
商品尺寸 | object |
Color |
商品颜色 | object |
Season |
购买季节 | object |
Review Rating |
客户评价评分 | float64 |
Subscription Status |
订阅状态 | object |
Shipping Type |
配送方式 | object |
Discount Applied |
是否使用折扣 | object |
Promo Code Used |
是否使用促销码 | object |
Previous Purchases |
过往购买次数 | int64 |
Payment Method |
支付方式 | object |
Frequency of Purchases |
购买频率 | object |
三、客户人口统计特征分析
3.1 年龄分布
import matplotlib.pyplot as plt
# 查看年龄分布,并保留两位小数
age_distribution = data['Age'].describe().round(2)
# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['WenQuanYi Zen Hei']
# 绘制年龄分布直方图
plt.hist(data['Age'], bins=20, edgecolor='black')
plt.xlabel('年龄')
plt.xticks(rotation=45)
plt.ylabel('数量')
plt.title('客户年龄分布直方图')
plt.show()
print('客户年龄分布:', age_distribution)
3.1.1 年龄分布统计数据
| 统计量 | 值 | 说明 |
|---|---|---|
| count | 3900.00 | 参与统计的客户数量为 3900 人 |
| mean | 44.07 | 客户的平均年龄约为 44.07 岁,反映了整体客户年龄的平均水平 |
| std | 15.21 | 年龄的标准差为 15.21,说明客户年龄相对较为分散 |
| min | 18.00 | 最小年龄为 18 岁,表明有年轻客户群体参与购物 |
| 25% | 31.00 | 四分之一的客户年龄在 31 岁及以下 |
| 50% | 44.00 | 一半的客户年龄在 44 岁及以下,即中位数为 44 岁 |
| 75% | 57.00 | 四分之三的客户年龄在 57 岁及以下 |
| max | 70.00 | 最大年龄为 70 岁,说明老年客户也有一定的购物行为 |
从这些数据可以推测,该购物群体的年龄覆盖范围较广,从 18 岁到 70 岁都有涉及。平均年龄和中位数接近,说明年龄分布大致呈对称状,但标准差显示年龄数据存在一定的离散性。企业可以根据这个年龄分布特点,针对不同年龄段制定不同的营销策略。
3.1.2 年龄分布直方图
该直方图直观地展示了客户年龄的分布情况。通过直方图,我们可以更清晰地看到不同年龄段客户的数量分布,进一步分析出哪个年龄段的客户是主要购物群体,从而有针对性地进行商品推荐和营销活动策划。
3.2 性别分布
# 查看性别分布
gender_distribution = data['Gender'].value_counts()
# 绘制性别分布饼图
plt.pie(gender_distribution, labels=gender_distribution.index, autopct='%1.1f%%')
plt.title('客户性别分布饼图')
plt.show()
print('客户性别分布:', gender_distribution)
3.2 性别分布
3.2.1 性别分布统计数据
| 性别 | 数量 |
|---|---|
| Male | 2652 |
| Female | 1248 |
从数据中可以看出,男性客户数量(2652 人)明显多于女性客户数量(1248 人)。这可能反映出该购物平台或业务的商品或服务更受男性青睐,或者在市场推广方面对男性群体的覆盖更为有效。企业可以进一步分析男性客户的购物偏好,加大对男性客户感兴趣商品的推广力度,同时思考如何吸引更多女性客户,例如针对女性客户开展专属的营销活动。
3.2.2 性别分布饼图
该饼图直观地展示了男性和女性客户在总体客户中的占比情况。通过饼图可以更清晰地对比两者的比例关系,有助于企业在制定营销策略、规划商品种类等方面做出决策。例如,根据男女客户的占比合理分配广告投放资源,或者调整商品库存结构以更好地满足不同性别客户的需求。
四、购买行为分析
4.1 购买金额分布
# 查看购买金额分布,并保留两位小数
purchase_amount_distribution = data['Purchase Amount (USD)'].describe().round(2)
# 绘制购买金额分布直方图
plt.hist(data['Purchase Amount (USD)'], bins=20, edgecolor='black')
plt.xlabel('购买金额(美元)')
plt.xticks(rotation=45)
plt.ylabel('数量')
plt.title('购买金额分布直方图')
plt.show()
print('购买金额分布:', purchase_amount_distribution)
4.1 购买金额分布
4.1.1 购买金额的统计描述
| 统计量 | 值 | 含义 |
|---|---|---|
| count | 3900.00 | 表示参与统计的购买记录数量为 3900 条。这说明数据量较为充足,能够相对准确地反映购买金额的整体情况。 |
| mean | 59.76 | 平均每次购买金额约为 59.76 美元,可作为衡量客户平均消费能力的一个参考指标。 |
| std | 23.69 | 标准差为 23.69,表明购买金额存在一定的离散程度,客户的购买金额波动相对较大。 |
| min | 20.00 | 最小购买金额为 20 美元,这可能是该平台或业务的最低消费门槛,或者反映了一些低价商品的购买情况。 |
| 25% | 39.00 | 有 25% 的购买金额在 39 美元及以下,这是下四分位数,可用于划分低消费群体。 |
| 50% | 60.00 | 中位数为 60 美元,意味着一半的购买金额在 60 美元及以下,另一半在 60 美元以上。它比平均数略高,可能暗示数据分布有一定的右偏。 |
| 75% | 81.00 | 有 75% 的购买金额在 81 美元及以下,这是上四分位数,可用于划分高消费群体。 |
| max | 100.00 | 最大购买金额为 100 美元,这可能是该平台或业务的消费上限,或者是某些特殊商品或套餐的价格。 |
综合来看,企业可以根据这些统计数据制定不同的营销策略。例如,针对低消费群体(购买金额在 39 美元及以下)推出一些低价促销活动;对于高消费群体(购买金额在 81 美元及以上)提供更优质的服务和个性化的推荐。
4.1.2 购买金额分布直方图
从直方图中可以直观地看到购买金额的分布频率。通过观察直方图的形状,可以进一步确认购买金额是否存在偏态分布等情况。如果直方图呈现右偏态,说明有少数客户的购买金额较高,拉高了整体的平均购买金额。企业可以针对这些高消费的少数客户进行重点维护和营销,以提高他们的忠诚度和消费频次。
4.2 不同商品类别的购买情况
# 查看不同商品类别的购买数量
category_purchase_count = data['Category'].value_counts()
# 查看不同商品类别的购买金额
category_purchase_amount = data.groupby('Category')['Purchase Amount (USD)'].sum()
# 创建两个图像
fig, axs = plt.subplots(2)
# 绘制不同商品类别的购买数量柱状图
axs[0].bar(category_purchase_count.index, category_purchase_count)
axs[0].set_xlabel('商品类别')
axs[0].set_ylabel('购买数量')
axs[0].set_title('不同商品类别的购买数量柱状图')
axs[0].tick_params(axis='x', rotation=90)
# 添加购买数量数据标签
for i, v in enumerate(category_purchase_count):
axs[0].text(i, v + 1, str(v), ha='center')
# 绘制不同商品类别的购买金额柱状图
axs[1].bar(category_purchase_amount.index, category_purchase_amount)
axs[1].set_xlabel('商品类别')
axs[1].set_ylabel('购买金额(美元)')
axs[1].set_title('不同商品类别的购买金额柱状图')
axs[1].tick_params(axis='x', rotation=90)
# 添加购买金额数据标签
for i, v in enumerate(category_purchase_amount):
axs[1].text(i, v + 10, str(round(v, 2)), ha='center')
plt.tight_layout()
plt.show()
print('不同商品类别的购买数量:', category_purchase_count)
print('不同商品类别的购买金额:', category_purchase_amount.round(2))
4.2 不同商品类别的购买情况
4.2.1 不同商品类别的购买数量
| 商品类别 | 购买数量 |
|---|---|
| Clothing | 1737 |
| Accessories | 1240 |
| Footwear | 599 |
| Outerwear | 324 |
从购买数量来看,“Clothing”(服装)类商品的购买数量最多,这可能表明该类商品在消费者中有较高的需求,也许是因为服装属于日常必需品,更新换代频率较高。而“Outerwear”(外套)类商品的购买数量最少,推测可能是因为外套相对价格较高、使用周期较长,消费者购买的频次较低。
4.2.2 不同商品类别的购买金额
| 商品类别 | 购买金额(美元) |
|---|---|
| Accessories | 74200 |
| Clothing | 104264 |
| Footwear | 36093 |
| Outerwear | 18524 |
在购买金额方面,“Clothing”(服装)类商品同样占据首位,这不仅是因为其购买数量多,还可能意味着该类商品的平均单价也有一定水平。“Accessories”(配饰)类商品虽然购买数量不如“Footwear”(鞋类),但购买金额却更高,这可能说明配饰类商品的平均单价较高。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)