【大数据处理】消费者行为与购物习惯数据分析及可视化

本文探讨了基于Kaggle的消费者行为与购物习惯数据集,通过分析购物频率、产品偏好、季节性等因素,揭示了这些变量如何影响消费者决策。通过数据可视化展示了季节性趋势、产品类别偏好和性别差异等关键洞察。
摘要由CSDN通过智能技术生成

相关文章及代码下载

消费者行为与购物习惯数据分析及可视化完整代码包

【大数据处理】文档分析

【大数据处理】matplotlib做简单数据可视化

1. 探究的问题陈述

数据集来源:kaggle

https://www.kaggle.com/datasets/zeesolver/consumer-behavior-and-shopping-habits-dataset/data

这是一个在kaggle上的消费者行为与购物习惯的数据集。

消费者行为和购物习惯数据集提供了有关消费者在购物过程中的偏好、倾向和模式的全面洞察。该数据集包含各种变量,包括人口统计信息、购买历史、产品偏好、购物频率以及在线/离线购物行为。有了这些丰富的数据就可以研究消费者决策过程的复杂性,帮助企业制定有针对性的营销策略、优化产品供应和提高整体客户满意度。

消费者行为和购物习惯数据集详细概述了消费者的偏好和购买行为。它包括人口统计信息、购买历史、产品偏好和首选购物渠道(在线或离线)。该数据集对于旨在调整战略以满足客户需求和提升客户购物体验的企业来说至关重要,最终将促进销售额和忠诚度的提高。

数据集术语表(按列排列)

客户ID(Customer ID):分配给每位客户的唯一标识符,便于跟踪和分析客户的长期购物行为。

年龄(Age):顾客的年龄,为细分和有针对性的营销策略提供人口统计信息。

性别(Gender):客户的性别标识,是影响产品偏好和购买模式的关键人口统计变量。

购买项目(Item Purchased):顾客在交易过程中选择的特定产品或项目。

类别(Category):所购商品所属的大类或组别(如服装、电子产品、杂货)。

购买金额(Purchase Amount):交易的货币价值,以美元(USD)表示,表示所购物品的成本。

地点(Location):进行购买的地理位置,有助于了解地区偏好和市场趋势。

尺寸(Size):所购商品的尺寸规格(如适用),与服装、鞋类和某些消费品相关。

颜色(Color):与所购商品相关的颜色变体或选择,影响客户偏好和产品供应。

季节(Season):所购商品的季节相关性(如春、夏、秋、冬),影响库存管理和营销策略。

审查评级(Review Rating):顾客对所购商品满意度的数字或定性评估。

订阅状态(Subscription Status):表示客户是否选择了订阅服务,以深入了解客户的忠诚度和获得经常性收入的潜力。

运送类型(Shipping Type):指定所购商品的配送方式(如标准配送、快递),影响配送时间和成本。

折扣应用(Discount Applied):说明购买时是否应用了促销折扣,从而揭示价格敏感度和促销效果。

使用的促销代码(Promo Code Used):说明交易过程中是否使用了促销代码或优惠券,有助于评估营销活动的成功与否。

以前的购买记录(Previous Purchases):提供有关客户之前购买次数或频率的信息,有助于客户细分和保留策略。

付款方式(Payment Method):指定客户使用的付款方式(如信用卡、现金),以便深入了解首选付款方式。

购买频率(Frequency of Purchases):表示客户参与购买活动的频率,是评估客户忠诚度和终身价值的重要指标。

2. 所探究的问题

对于这个数据集我们可以调探究各种因素在决定消费者行为和购物习惯的影响性,如季节性、物品属性(大小和颜色)、和促销活动(折扣和促销码),以及客户购买前的心理决策。

是否有特定的季节,某些产品类别表现更好?

特定的商品属性或促销是否会显著影响购买金额?

利用消费者行为和购物习惯数据集,分析客户人口统计数据(年龄和性别)与他们的购买行为之间的关系。

是否有特定的产品类别或购物渠道受到特定年龄群体或性别的青睐?

如何利用这些信息来设计更有针对性的营销策略?

3. 导入的python库和模块并初始化

import csv
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
import plotly.express as px
from matplotlib import style
plt.rcParams["font.sans-serif"] = ["SimHei"]

df=pd.read_csv('C:\\Users\\w\\Desktop\\vscode_project\\Consumer behavior and Shopping habits – Clustering\\shopping
_behavior_updated.csv')

首先导入了所需的库和模块,并使用pandas的read_csv方法读取了一个名为'shopping_behavior_updated.csv'的CSV文件,并将数据存储在名为'df'的DataFrame对象中。并设置了一些绘图预设,指定字体及图形化后端界面的类型。

4. 数据准备和清理

首先了解要处理的数据以及每列的数据类型是否有用。数据类型可能决定了如何转换和设计功能。

print(df.head(5))
print(df.tail(5))
print('数据大小:', df.shape)
print('表头:', df.columns)
print('数据信息:', df.info())
print(df.apply(lambda col: col.unique()))
df.nunique()
df.isnull().sum()

首先使用head()方法打印数据集的前5行数据,使用tail()方法打印数据集的后5行数据,使用shape属性打印数据集的大小,使用columns属性打印数据集的表头,使用info()方法打印数据集的信息。

然后,使用apply()方法对每个列应用一个匿名函数,该函数返回该列的唯一值。这将让我们看到每个列的唯一值。接着,使用nunique()方法计算每个列的唯一值的数量。最后,使用isnull()方法检查数据集中的缺失值,并打印结果。

结果如下:

5. 数据分析及处理

(1)以地点Location进行分组处理:

value=len(df[df.duplicated()])
print("数据集重复数据:\n",value)
df.describe().T
location_counts = df["Location"].value_counts()
print("地点计数:\n", location_counts)
category_counts = df.groupby("Location")["Category"].valu
e_counts()

print("类别频率:\n", category_counts)
location_purchase_stats = df.groupby("Location")["Purchase Amount (USD)"].agg(["mean", "median", "sum"])
print("购买金额统计信息:\n", location_purchase_stats)
shipping_type_counts = df.groupby("Location")["Shipping Type"].value_counts()
print("物流方式频率:\n", shipping_type_counts)

location_groups = df.groupby("Location")

执行结果:

对df的进行数据分析和处理。首先,检查df中是否有重复的行。如果存在重复行,则将重复行的数量存储在value变量中,然后打印出来。

接下来,使用describe()方法对df进行描述,包括列的名称、数据类型、平均值、标准差、最小值和最大值等信息。T表示将结果的行和列交换。使用value_counts()方法对df["Location"]列进行值计数,并打印结果。这将显示每个位置的频率。

使用groupby()方法对df按照Location列进行分组,然后使用value_counts()方法对Category列进行值计数。这将显示每个位置的每个类别(Category)的频率。

使用groupby()方法对df按照Location列进行分组,然后使用agg()方法对Purchase Amount (USD)列进行聚合操作,包括计算平均值、中位数和求和。这将显示每个位置的购买金额统计信息。

使用groupby()方法对df按照Location列进行分组,然后使用value_counts()方法对Shipping Type列进行值计数。这将显示每个位置的物流方式(Shipping Type)的频率。

使用groupby()方法对df按照Location列进行分组,这将返回一个GroupBy对象,可以进一步进行分组聚合操作。

(2)分析区域趋势

for location, location_data in location_groups:
    print(f"{location}区域趋势: ")
    # 计算该地区的平均购买量
    avg_purchase_amount = location_data["Purchase Amount (USD)"].mean()
    print(f"平均购买金额:${avg_purchase_amount:.2f}")
    # 统计一下该地区最受欢迎的产品类别
    popular_categories = location_data["Category"].value_counts().idxmax()
    print(f"最受欢迎类别: {popular_categories}")

    # 分析网上购物偏好
    online_shopping = location_data["Shipping Type"].apply(lambda x: "Online" if "Express" in x or "Standard" in x else "Offline")
    online_percentage = (online_shopping.value_counts() / len(online_shopping)) * 100
    print(f"网上购物偏好:")
    print(online_percentage)

    print("\n")

创建一个location_groups迭代器,其中每个元素是一个元组,包含Location和Location_data两个部分。for循环遍历每个元组,使用`mean()`方法计算该地区的平均购买量,并将结果存储在avg_purchase_amount变量中。使用str.format()将结果格式化,并打印。

使用value_counts()方法统计该地区最受欢迎的产品类别,并将结果存储在变量中。同样结果格式,并打印。

创建一个名为online_shopping的新列,其中包含该地区用户的购物方式。使用apply()方法将Shipping Type列的值应用一个匿名函数,该函数检查值是否包含"Express"或"Standard",如果是,则将其转换为"Online",否则转换为"Offline"。之后计算online_shopping列中每个值的出现次数,然后除以总行数,以获得百分比。将结果存储在online_percentage变量中。使用apply()方法将结果转换为百分比,然后使用value_counts()方法计算每个值的出现次数,最后使用apply()方法将结果转换为百分比。

打印出在线购物偏好,即online_percentage变量的结果。

   

从结果上我们可以看到,在阿拉斯加,购物者对服装表现出强烈的偏好,平均支出为67美元,在服装类别中是最高的。这表明他们对质量和风格有明显的偏好,反映了阿拉斯加独特的消费者行为和市场趋势。

6. 数据可视化

我们可以通过可视化来看看各种因素的影响,比如季节性,商品属性(尺寸和颜色)和促销活动(折扣和促销代码)对客户购买决策的影响。

(1)季节对购买的影响

图表如下所示:

从视觉上我们可以看出,消费者在冬季和秋季的购买量比春季和夏季的购买量要多,但差距并不明显。

(2)类别对购买的影响

图表显示,外套类别比其他类别略低:

(3)性别对购买的影响

饼图如下所示:

从饼图中我们可以得知相比之下,男性更愿意花钱(67%),而女性更不愿意花钱(32%)。

(4)尺寸对购买的影响

如图所示,小号、加大号的购买量低于大号和中号的购买量。

(5)产品类别分布

如下图所示:

可以看到,服装类是最受消费者欢迎的。

(6)不同年龄的类别分布情况

可以从图表看出年龄分布在各类产品中都呈现两边低中间高的情况,即15~25和65~75的人们相比之下比较少购物。

正如我们所看到的,服装是所有年龄组中最受欢迎的类别。

除了15-25岁和65-75岁年龄段外,所有年龄段的配饰都居多。然而,我们已经看到,在鞋类类别中,45-55岁年龄组的人最多。外套在所有年龄组中几乎同样多。

(7)不同地理位置的购买金额分布

使用seaborn库的barplot函数绘制柱状图,其中x轴表示地理位置,y轴表示购买金额,errorbar参数设置为None表示不显示误差条,颜色设置为蓝色。

执行图表如下:

(8)购买金额(美元)与各种变量

购买金额(美元)与其他变量的可视化,以了解它们之间的关系

使用SNS库的pairplot函数绘制数据集中变量之间的相关性图。该函数会自动计算每个变量之间的皮尔逊相关系数,并将它们显示在图中。

执行图表如下:

7. 异常处理

运行绘画可视化图形时,遇到了异常问题:

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend

经过检索解决方法发现,agg是一个没有图形显示界面的终端,常用的有图形界面显示的终端有TkAgg等。如下图

找到import matplotlib.pyplot as plt,在这句话前加上两句指定显示终端使用TkAgg,如下:

结果

与春夏相比,消费者往往在冬季和秋季购买更多的东西。

与其他品类相比,外衣品类的购买量略低,这表明有可能改进的领域。

男性占总消费的67%,而女性占32%。

与大号、小号和中号等其他尺码相比,超大号的购买量更低。

服装是所有消费者中最受欢迎的产品类别。

除了15-25岁和65-75岁的人群外,配饰在各个年龄段都同样受欢迎。

鞋类在45-55岁年龄组中特别受欢迎。

外套在所有年龄组中都很受欢迎。

总结

对顾客行为和购买数据的分析揭示了一些有价值的见解。季节变化、产品类别、性别、尺寸和促销码的使用都会影响消费者的购买决策。数据还表明,蒙大拿州拥有强大的消费市场,服装是各个年龄段的首选产品类别。这些发现可以为营销策略、产品供应和促销提供信息,以更好地瞄准和服务不同的客户群。

  • 35
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
背景描述 客户购物偏好数据集提供了有关消费者行为和购买模式的宝贵见解。了解客户偏好和趋势对于企业定制产品、营销策略和整体客户体验至关重要。 本数据集捕捉了广泛的客户属性,包括年龄、性别、购买历史、首选支付方式、购买频率等。分析这些数据可以帮助企业做出明智的决策、优化产品和提高客户满意度。 本数据集包含与客户购物偏好相关的各种特征的 3900 条记录,为企业收集了必要的信息,以加强对客户群的了解。 数据说明 字段 说明 Customer ID 客户唯一标识符 Age 客户年龄 Gender 客户性别(男/女) Item Purchased 客户购买的商品 Category 购买商品的类别 Purchase Amount (USD) 购买金额(美元) Location 购买地点 Size 购买商品的尺码 Color 购买商品的颜色 Season 购买商品的季节 Review Rating 客户对购买商品的评分 Subscription Status 客户是否拥有订阅(是/否) Shipping Type 客户选择的配送方式 Discount Applied 是否应用了折扣(是/否) Promo Code Used 是否使用了优惠码(是/否) Previous Purchases 客户在该商店的历史购买总数,不包括当前交易 Payment Method 客户最常用的支付方式 Frequency of Purchases 客户购买频率(每周、每两周、每月等) 问题描述 分析不同客户群体的消费行为差异(按年龄段、性别、地区等划分客户群体) 分析不同类别商品的销售情况,找出畅销商品 分析各季节的销售趋势,确定高峰销售季节 分析优惠活动的效果,如折扣、优惠码的使用情况 分析客户忠诚度,如回购率、评分、购买频率等指标 分析付款方式偏好,优化支付流程 利用历史数据建立商品推荐系统 预测未来销量,进行库存管理和供应链规划
Python数据分析可视化大作业是一个重要的课程项目,它涵盖了Python数据分析可视化的各个方面。学生需要使用Python编程语言来获取、清洗、分析和可视化数据,并使用统计学和机器学习技术来提取数据的洞察和建立预测模型。 在大作业中,学生将根据自己的兴趣选择一个数据集,并研究这个数据集。他们需要运用Python和其它数据科学工具来实现以下功能: 1.数据获取和存储:使用Python编写代码,从互联网上获取指定数据集,例如Kaggle。然后将数据集存储到本地计算机中进行分析。 2.数据清洗:学生需要识别和纠正数据集中的错误和缺失数据。清洗数据的过程中,学生还需要进行重复数据的识别和去除。 3.数据分析:输入数据集包含各种变量,学生需要使用python统计和机器学习的算法对整个数据集进行分析。在分析过程中,学生需要根据数据集中的具体情况,选择适合的算法来拟合数据。 4.数据可视化:学生需将数据集的结果可视化,以支持观察者对分析结果的理解。这些可视化可以是交互式的报表、图表或热图等。 最后,学生需要准备一个报告汇总项目的进展,这个报告应该包括项目目标,数据集选取和获取,数据预处理,数据分析可视化结果,以及对整个分析作出的结论和建议。 总的来说,Python数据分析可视化大作业对于学生进一步掌握数据科学技术和数据分析的流程十分必要,它可以对数据分析的能力和Python编程技巧相当程度的挑战。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值