电商数据可视化分析(Python)

数据分析及应用

一个数据挖掘算法砖家。分享Python大数据分析、数据挖掘算法等技术干货

目录

1.项目背景

2.数据集介绍

3.技术工具

4.导入数据

5.数据可视化

5.1分析性别比例

5.2年龄分布

5.3购物种类分析

5.4产品型号分析 

5.5其他分析

6.总结


1.项目背景

        随着现代电子商务的飞速发展,顾客购物数据量也在飞速增长。这些数据包含了丰富的信息,如消费者的购买习惯、喜好、趋势等。然而,如何有效地处理和利用这些数据,使其为商业决策提供有价值的洞见,成为了一个重要的问题。为此,通过数据可视化技术,将复杂的数据转化为直观、易理解的图形,可以帮助企业更好地理解市场和消费者行为,进一步优化商业决策。

        顾客购物数据的可视化具有广泛的应用场景。例如,商家可以通过对顾客的购买历史进行分析,了解顾客的购买习惯和喜好,从而为他们推荐更符合其需求的产品或服务。此外,商家还可以通过数据可视化来识别销售趋势,预测未来的销售情况,从而制定更有效的销售策略。

        本项目旨在通过数据可视化技术,对顾客购物数据进行深入挖掘和分析,为商家提供全面的市场分析和商业洞察。通过使用先进的数据可视化工具和技术,我们将从大量的顾客购物数据中提取有价值的信息,并通过直观的图形展示出来,帮助商家更好地理解市场和消费者行为,优化商业决策。

2.数据集介绍

该数据集来源于kaggle,原始数据集共有3900条,18个特征变量,各变量含义解释如下:

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- 客户购买的频率(例如每周、每两周、每月)

3.技术工具

Python版本:3.9

代码编辑器:jupyter notebook

4.导入数据

首先导入本次实验用到的可视化第三方库,并加载数据集

 
  1. import matplotlib.pyplot as plt

  2. data=pd.read_csv("shopping_trends_updated.csv")

接着查看一下数据集的基本信息

 
  1. print(f'data shape : {data.shape}')

  2. sum=pd.DataFrame(data.dtypes,columns=['data type'])

  3. sum["Missing"]=data.isnull().sum()

  4. sum["%Missing"]=(data.isnull().sum()/len(data))*100

  5. sum['#unique']=data.nunique().values

  6. desc=pd.DataFrame(data.describe(include="all").transpose())

  7. sum['min']=desc['min'].values

  8. sum['max']=desc['max'].values

  9. sum['first value']=data.loc[0].values

  10. sum['second value']=data.loc[1].values

  11. sum['Third value']=data.loc[2].values

图片

可以发现该数据集的形状为(3900,18)。在这个数据中,有13个分类列和5个数值列。没有缺失值。客户总数为3900。

5.数据可视化

5.1分析性别比例

 
  1. colors = ["#89CFF0", "#FF69B4", "#FFD700", "#7B68EE", "#FF4500",

  2. "#9370DB", "#32CD32", "#8A2BE2", "#FF6347", "#20B2AA",

  3. "#FF69B4", "#00CED1", "#FF7F50", "#7FFF00", "#DA70D6"]

  4. plt.figure(figsize=(6, 4))

  5. G_vis = data['Gender'].value_counts()

  6. bars = plt.bar(G_vis.index, G_vis.values, color='gray')

  7. plt.ylabel('Number of Gender')

  8. plt.title('Gender Distribution')

  9. plt.text(bar.get_x() + bar.get_width() / 2, bar.get_height(), str(int(bar.get_height())), ha='center', va='bottom')

图片

 
  1. plt.figure(figsize = (20, 6))

  2. counts = data["Gender"].value_counts()

  3. counts.plot(kind = 'pie', fontsize = 12, colors = colors, explode = explode, autopct = '%1.1f%%')

  4. plt.xlabel('Gender', weight = "bold", color = "#2F0F5D", fontsize = 14, labelpad = 20)

  5. plt.legend(labels = counts.index, loc = "best")

图片

可以看出该数据集的顾客是男性多于女性的。 

5.2年龄分布

 
  1. plt.figure(figsize=(8, 4))

  2. plt.hist(data['Age'],edgecolor = 'black',alpha=0.7,bins=25,color = 'skyblue',density=True)

  3. data['Age'].plot(kind='kde', color = 'red')

  4. plt.ylabel('Count / Density')

  5. plt.title('Age Distribution Histogram with Density Curve')

  6. plt.legend(['Density Curve', 'Histogram'])

图片

顾客的年龄主要分布在20-70岁之间。

5.3购物种类分析

 
  1. plt.figure(figsize = (10, 6))

  2. c=data["Category"].value_counts()

  3. bar=plt.bar(c.index,c.values,color=colors)

  4. plt.text(bar.get_x() + bar.get_width() / 2, bar.get_height(), str(int(bar.get_height())), ha='center', va='bottom')

  5. plt.title('Category Distribution')

图片

 
  1. counts = data["Category"].value_counts()

  2. explode = (0, 0.0, 0.1, 0.2)

  3. counts.plot(kind = 'pie', fontsize = 12, colors = colors, explode = explode, autopct = '%1.1f%%')

  4. plt.xlabel('Gender', weight = "bold", color = "#2F0F5D", fontsize = 14, labelpad = 20)

  5. plt.legend(labels = counts.index, loc = "best")

图片

 
  1. plt.figure(figsize=(8, 3))

  2. sns.countplot(data=data, x='Category', hue='Gender',palette='pastel')

  3. plt.title('Product Category by Gender')

  4. plt.xlabel('Product Category')

  5. plt.legend(title='Gender', labels=data['Gender'].unique())

图片

 
  1. plt.figure(figsize=(22,5))

  2. sns.countplot(data=data,x='Item Purchased',hue='Gender',palette='Set2')

  3. plt.title('Item Purchased Distribution by Gender')

图片

5.4产品型号分析 

 
  1. count=data['Size'].value_counts()

  2. plt.figure(figsize=(6,4))

  3. bars=plt.bar(count.index,count.values,color=colors)

  4. plt.annotate(f'{bar.get_height()}', (bar.get_x() + bar.get_width() / 2., bar.get_height()), ha='center', va='center', fontsize=9, color='black', xytext=(0, 5), textcoords='offset points')

图片

 
  1. sns.countplot(data=data,x='Size' ,hue='Gender')

图片

 
  1. plt.figure(figsize=(15,5))

  2. sns.countplot(data=data,x='Category' ,hue='Size')

  3. plt.title('Category distribution by Gender')

图片

 
  1. plt.figure(figsize=(10,20))

  2. sns.countplot(data=data,y='Item Purchased',hue='Size')

  3. plt.ylabel('Item Purchased', fontsize=10)

  4. plt.xlabel('\nNumber of Occurrences', fontsize=10)

  5. plt.title('Item Purchased by Gender\n', fontsize=10)

图片

5.5其他分析

 
  1. count=data['Season'].value_counts()

  2. count.plot(kind='pie',colors=colors,fontsize=12,explode=(0,0.1,0,0.1),autopct='%1.1f%%')

图片

 
  1. plt.figure(figsize=(20, 6))

  2. sns.violinplot(x='Category', y='Review Rating', data=data)

  3. plt.title('Review Rating by Category')

  4. plt.ylabel('Review Rating')

  5. plt.xticks(rotation=45,fontsize=12)

图片

 
  1. sns.kdeplot(data[data['Gender'] == 'Male']['Review Rating'], label='Male', shade=True)

  2. sns.kdeplot(data[data['Gender'] == 'Female']['Review Rating'], label='Female', shade=True)

  3. plt.title('KDE Plot of Review Rating by Gender')

  4. plt.xlabel('Review Rating')

图片

 
  1. plt.figure(figsize=(20, 5))

  2. sns.kdeplot(data = data, x = 'Purchase Amount (USD)', hue = 'Season', common_norm = False, fill = True, palette = 'Set1')

  3. plt.title('KDE Plot of Purchase Amount by Season')

  4. plt.xlabel('Purchase Amount in USD')

图片

6.总结

        通过本次实验,我们成功地利用数据可视化技术对顾客购物数据进行深入分析,提取了有价值的信息。这些信息可以帮助商家更好地了解市场和消费者行为,优化商业决策。例如,针对消费者的购买习惯周期性特点,商家可以在周末加强促销力度,提高销售额;针对不同地区的销售差异,商家可以制定个性化的销售策略,提高市场占有率;针对某品牌的销售上升趋势,商家可以进一步加大市场推广力度,扩大品牌影响力。

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于Python爬取电商数据可视化分析系统是一个用于从电商网站中爬取数据,并通过可视化分析来帮助用户更好地理解和分析电商市场的工具。 首先,我们可以使用Python的库,如BeautifulSoup、Selenium等,来进行网页爬取。通过抓取电商网站上的商品信息、用户评价和销售数据,可以获得关于产品和市场的大量数据。 然后,通过数据清洗和处理,对所获取的原始数据进行整理和筛选,将其转换为结构化的数据。这可以通过使用Pandas和NumPy等Python的数据处理库来实现。清洗和处理数据的目的是为了提高数据的质量,减少噪声和错误,使得分析后的结果更具有可靠性和准确性。 接下来,我们可以使用Python数据可视化库,如Matplotlib和Seaborn,对清洗后的数据进行可视化分析。通过绘制柱状图、折线图、散点图、热力图等各种图表,可以直观地展示商品的销售量、价位分布、用户评价等信息,为用户提供全面的市场洞察。这些可视化图表可以帮助用户发现销售趋势、热门产品、市场竞争等关键信息,以支持他们做出更明智的决策。 此外,系统还可以提供交互式的可视化界面,供用户根据自己的需求进行数据的筛选和查询。用户可以选择特定的电商平台、产品类别、时间范围等条件,来针对性地观察和分析市场数据。同时,系统还可以提供基于用户行为的推荐功能,帮助用户发现可能感兴趣的产品和市场机会。 总之,基于Python爬取电商数据可视化分析系统可以为用户提供全面的电商市场数据分析服务,帮助他们更好地理解市场状况,发现潜在商机,做出科学的决策。通过Python强大的数据处理和可视化能力,这个系统可以有效地帮助用户节省时间和精力,提高决策的准确性和效率。 ### 回答2: 基于Python爬取电商数据可视化分析系统,是指利用Python编程语言实现爬取电商数据,并通过数据可视化技术展示和分析这些数据的系统。 首先,利用Python的爬虫技术,我们可以编写程序来自动抓取电商网站上的数据,包括商品信息、销售数据、用户评价等。通过调用Python的网络请求库,我们可以模拟浏览器的操作,访问网页、获取页面源码,并使用正则表达式或解析库来提取所需数据。 接下来,将获取到的数据进行清洗和处理,去除无用信息、格式化数据,并存储到数据库中以便后续使用。Python的数据处理库,如Pandas和Numpy,可以帮助我们对大量数据进行快速高效的处理和整理。 然后,利用Python数据可视化库,如Matplotlib和Seaborn,我们可以对电商数据进行图表展示和分析。可以绘制柱状图、折线图、饼图等,展示商品销售额、用户评价分布等数据特征。此外,还可以使用地理信息可视化库,如Folium,根据用户的地理位置展示销售热度地图。 最后,为了使系统更加用户友好,可以使用Python的Web框架,如Flask和Django,搭建一个网页应用。用户可以通过界面输入要爬取的电商网站地址或选择已配置好的网站,系统将自动爬取数据并展示在网页上。用户可以通过交互式的界面来选择不同的数据展示方式和分析方法,实现个性化的数据可视化分析需求。 综上所述,基于Python爬取电商数据可视化分析系统,通过爬取数据、数据处理、数据可视化和Web应用搭建,能够帮助我们更好地理解和分析电商数据,为电商运营和决策提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值