导入数据
影响交易额因素分析
2.1 年龄因素对交易额影响
2.2 居住时长因素对交易额影响
2.3 年龄和居住时长因素对交易额影响
2.4 所有因素两两相关性分析

import os #导入库import pandas as pd #导入库os.chdir(r'F:\公众号\10.黑色星期五购物数据') #设置文件存放路径date = pd.read_csv('BlackFriday.csv') #读取数据


1 年龄因素对交易额影响
import matplotlib.pyplot as plt #导入库plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示问题plt.rcParams['axes.unicode_minus'] = False # 解决中文显示问题result = date[['Purchase']].groupby(date['Age']).mean() #按年龄分组,统计交易额平均值plt.scatter(result['Purchase'], result.index, c=result['Purchase']) #以交易额为x轴和区分颜色,年龄为y轴绘制散点图plt.colorbar() #绘制颜色条plt.xlabel('交易额') #x轴标签plt.ylabel('年龄段') #y轴标签plt.title('不同年龄段交易额趋势') #标题plt.show()
得到结果如下:

图一 不同年龄段交易额
由图一知,相对而言年龄越大交易额均值越大,但是在46到50岁的时候出现了一个反常现象。
2 居住时长因素对交易额影响
result = date[['Purchase']].groupby(date['Stay_In_Current_City_Years']).mean() #按年龄分组,统计交易额平均值plt.scatter(result['Purchase'], result.index, c=result['Purchase']) #以交易额为x轴和区分颜色,年龄为y轴绘制散点图plt.colorbar() #绘制颜色条plt.xlabel('交易额') #x轴标签plt.ylabel('居住时长') #y轴标签plt.title('不同居住时长对交易额影响') #标题plt.show()
得到结果如下:

由图二知,在超市所在地居住时间2年左右的顾客平均交易金额最大,两者之间的关系整体呈现u字形。
3 年龄和居住时长因素对交易额影响
import matplotlib.cm as cm #导入库result = date[['Purchase']].groupby([date['Stay_In_Current_City_Years'], date['Age']]).mean() #按年龄分组,统计交易额平均值, resulax = plt.subplot(projection='3d')ax.scatter(result['Purchase'], result.index.codes[0], result.index.codes[1], color=cm.ScalarMappable().to_rgba(result['Purchase'])) #绘制三维散点图sm = plt.cm.ScalarMappable(norm=plt.Normalize(vmin=result['Purchase'].min(), vmax=result['Purchase'].max()))plt.xlabel('交易额') #x轴标签plt.ylabel('居住年数') #y轴标签plt.title('不同居住时长和年龄段对交易额影响') #标题plt.colorbar(sm) #显示对应数值的颜色条plt.show()
得到结果如下:

图三 不同居住时长和年龄段对交易额影响
由图三知,整体而言年龄段越大,在超市所在地居住时间2年左右的顾客平均交易金额最大,但是看得不是很清晰。
接下来从相关性角度对所有因素进行两两相关性分析。
4 所有因素两两相关性分析
pd.set_option('display.max_columns', None)date['Age'] = date['Age'].apply(lambda x:x[0])date.loc[date['Stay_In_Current_City_Years']=='4+', 'Stay_In_Current_City_Years'] = 4date['Age'] = date['Age'].astype(int)date['Stay_In_Current_City_Years'] = date['Stay_In_Current_City_Years'].astype(int)date.corr()
图四 两两相关性分析由图四知,对交易额影响最大的因素是产品类别1,产品类别1、产品类别2、产品类别3相关性相对较高。
为了更清晰地展现相关性表,可以把这个表绘制成热力图,具体代码如下:
import seaborn as sns #导入库sns.heatmap(date.corr()) #根据相关系数表绘制热力图plt.show()
图五 两两相关性表热力图由图五知,年龄和较多因素的关联性都较高,产品类别1、产品类别2、产品类别3相关性相对较高。
sns.clustermap(date.corr()) #绘制分层热力图plt.show()
得到结果:
图六 两两相关性分层聚类热力图
由图六知,产品类别1和产品类别2相关性较高首先聚为一类,再和产品类别3聚为一类。年龄和婚姻状态相关性较高首先聚为一类。
至此,在Python中绘图研究黑五超市交易额影响因素已全部讲解完毕,感兴趣的同学可以自己实现一遍
。


扫一扫关注我
19967879837
投稿微信号、手机号
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。