利用某商店黑色星期五进行数据可视化(Python)

首先,我们使用的三个包分别为pandas,matplotlib.pyplot,seaborn,首先我们导入这三个包,代码如下所示:

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

我们用到的黑五数据表如下:


黑五购物数据表(前半部分)


黑五购物数据表(后半部分)

一:可视化年龄与购物金额的关系

我们想要知道年龄和购买金额是否有联系,该如何可视化它们来供我们决策呢?

首先我们导入数据,然后创建一个新表,等于以年龄分组购买金额的均值,之后X轴为购买金额,Y轴为年龄,颜色设置为购买金额越大,颜色越浅,此处圆圈大小设置为购买金额的1/4,其代码如下所示:

frame = pd.read_csv(r'C:\Users\Administrator\Desktop\新建文件夹\BlackFriday.csv')

result = frame[['Purchase']].groupby(frame['Age']).mean()

plt.scatter(result['Purchase'],result.index,c=result['Purchase'],s=result['Purchase']*(1/4))

plt.colorbar()

plt.show()

得到可视化图表,如下所示:


年龄与购买金额之间的关系

根据数据可视化散点图,我们可以得知消费者年龄在36到45之前,随着年龄增长,购买金额会越来越大,但是到了46岁到50岁的时候,购买金额会大幅下降,到了51到55岁时候购物金额会大幅上涨,55岁之后会小幅下降

二:可视化当地居住时长和购物金额的关系

我们想要知道当地居住时长和购买金额是否有联系,该如何可视化它们来供我们决策呢?

首先我们导入数据,然后创建一个新表,等于以当地居住时长分组购买金额的均值,之后X轴为购买金额,Y轴为当地居住时长,颜色设置为购买金额越大,颜色越浅,此处圆圈大小设置为购买金额的1/4,其代码如下所示:

frame = pd.read_csv(r'C:\Users\Administrator\Desktop\新建文件夹\BlackFriday.csv')

result = frame[['Purchase']].groupby(frame['Stay_In_Current_City_Years']).mean()

plt.scatter(result['Purchase'],result.index,c=result['Purchase'],s=result['Purchase']*(1/4))

plt.colorbar()

plt.show()

居住时间与年龄间的关系

根据图表可知,居住不到一年的顾客购买金额最少,而购买最多的是居住2年的用户,其各自购买程度如图所示:

三:可视化各种因素的相关性

我们该如何知道各种因素之间的关联性如何呢?

这时候我们就需要热力图了,应对无法进行相关性分析的数据进行修改,将其修改为可相关的数据类型,并对其进行拟合,将其绘制成热力图来进行展示,其代码如下:

frame = pd.read_csv(r'C:\Users\Administrator\Desktop\新建文件夹\BlackFriday.csv')

pd.set_option('display.max_columns',None)

frame['Age'] = frame['Age'].apply(lambda x :x[0])

frame.loc[frame["Stay_In_Current_City_Years"]=='4+',"Stay_In_Current_City_Years"]=4

frame['Age'] = frame['Age'].astype(int)

frame["Stay_In_Current_City_Years"] = frame["Stay_In_Current_City_Years"].astype(int)

sns.heatmap(frame.corr())

plt.show()

可得到下图:


热力图

其中白色的部分由于是自己和自己进行相关,所以最高为1,没有参考价值,剩下的方格颜色越浅,证明其相关性越高,所以我们可以得知购买了1,2类产品的人购物额较低。

如果想要将数据格进行分组,可以使用代码:

sns.clustermap(frame.corr())

它可以将数据的相关性进行归类分层:


也可以通过sns.countplot()来计算不同属性的数据的计数,例如我们使用代码:

sns.countplot(frame['Age'])

可以统计到不同年龄组的购物人数,其图如下:


各年龄组购物人数

本项目来自中国大学mooc:中国大学mooc:南京财经大学Python大数据分析

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容