电商经销商年度消费业务分析实验报告(源代码)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import Normalizer
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score

# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = 'SimHei'
# 解决负号无法显示问题
plt.rcParams['axes.unicode_minus'] = False

# 第一步: 加载数据
data = pd.read_csv('Wholesale customers data.csv')
print(data.head())
print(data.describe())
print(data.info())
# 第二步: 数据探索
# 新鲜产品的年度支出分布,直方图
plt.hist(data['Fresh'], bins=20, edgecolor='k', alpha=0.5)
plt.show()
# 奶制品上的消费分布直方图
plt.hist(data['Milk'], bins=20, edgecolor='k', alpha=0.5)
plt.show()
# 零食上的消费直分布方图
plt.hist(data['Grocery'], bins=20, edgecolor='k', alpha=0.5)
plt.show()
# 冷冻食品消费直分布方图
plt.hist(data['Frozen'], bins=20, edgecolor='k', alpha=0.5)
plt.show()
# 洗涤和纸的消费分布直方图
plt.hist(data['Detergents_Paper'], bins=20, edgecolor='k', alpha=0.5)
plt.show()
# 熟食消费分布直方图
plt.hist(data['Delicassen'], bins=20, edgecolor='k', alpha=0.5)
plt.show()
# 顾客购买渠道饼状图
channel = data['Channel'].value_counts()
print(channel)
x = channel.index
y = channel.values
print(x, y)
plt.figure(figsize=(10, 7))
plt.pie(y, labels=x, autopct='%.1f %%', startangle=90)
plt.xlabel('顾客购买渠道占比')
plt.show()
# 顾客所属地区饼状图
region = data['Region'].value_counts()
print(region)
x = region.index
y = region.values
print(x, y)
plt.figure(figsize=(10, 7))
plt.pie(y, labels=x, autopct='%.1f %%', startangle=90)
plt.xlabel('顾客所属地区占比')
plt.show()
# 相关关系,热力图 annot:True 热力图中每个格子写入数据
sns.heatmap(data.corr(), cmap='Wistia', annot=True)
plt.show()
# 购买渠道和新鲜产品的年度支出数据的关联性 palette:使用调色板
sns.boxenplot(data['Channel'], data['Fresh'], palette='hsv')
plt.show()
# 购买渠道和奶制品上的消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Channel'], data['Milk'], palette='hsv')
plt.show()
# 购买渠道和零食上的消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Channel'], data['Grocery'], palette='hsv')
plt.show()
# 购买渠道和冷冻食品消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Channel'], data['Frozen'], palette='hsv')
plt.show()
# 购买渠道和洗涤和纸的消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Channel'], data['Detergents_Paper'], palette='hsv')
plt.show()
# 购买渠道和熟食消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Channel'], data['Delicassen'], palette='hsv')
plt.show()

# 所属地区和新鲜产品的年度支出数据的关联性 palette:使用调色板
sns.boxenplot(data['Region'], data['Fresh'], palette='hsv')
plt.show()
# 所属地区和奶制品上的消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Region'], data['Milk'], palette='hsv')
plt.show()
# 所属地区和零食上的消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Region'], data['Grocery'], palette='hsv')
plt.show()
# 所属地区和冷冻食品消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Region'], data['Frozen'], palette='hsv')
plt.show()
# 所属地区和洗涤和纸的消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Region'], data['Detergents_Paper'], palette='hsv')
plt.show()
# 所属地区和熟食消费数据的关联性 palette:使用调色板
sns.boxenplot(data['Region'], data['Delicassen'], palette='hsv')
plt.show()

# 根据相关关系热力图,画出相关关系>0.5的特征之间的关系
x = data['Fresh']
y = data['Milk']
z = data['Grocery']
a = data['Frozen']
b = data['Detergents_Paper']
c = data['Delicassen']
# 奶制品上的消费和零食上的消费、洗涤和纸的消费之间的联系
sns.lineplot(y, z, color='blue')  # 奶制品上的消费vs零食上的消费
sns.lineplot(y, b, color='red')  # 奶制品上的消费vs洗涤和纸的消费
plt.show()
# 零食上的消费和洗涤和纸的消费之间的联系
sns.lineplot(z, b, color='blue')  # 零食上的消费vs洗涤和纸的消费
plt.show()
# 第三步: 特征工程
# 构造数据集
X = data.iloc[:, 2:8]
print(X.head())
columns = X.columns
# 数据预处理:标准化
nl = Normalizer()
X = nl.fit_transform(X)
score = []  # 模型评分
range_values = np.arange(2, 10)  # 初始聚类个数
print(range_values)
# 簇从2-9分别训练模型,计算轮廓系数
for i in range_values:
    kmeans = KMeans(n_clusters=i)
    kmeans.fit(X)
    s = silhouette_score(X, kmeans.labels_)
    score.append(s)
# 取出最高得分
print(np.max(score))
# 画出所有得分的柱状图
plt.bar(range_values, score, width=0.7, color='b', align='center')
plt.show()
# 根据得分情况的分析簇选2最优的
n_clusters = 2
kmeans = KMeans(n_clusters=n_clusters)
kmeans.fit(X)
# 取分类的结果
y_pred = kmeans.labels_
print(y_pred)

# 把预测结果(一维数组),构造成Series
km_labels = pd.Series(y_pred)
# 统计各类别的数量
size = km_labels.value_counts()
print(size)
x = size.index
y = size.values
plt.figure(figsize=(10, 7))
plt.pie(y, labels=x, autopct='%.1f %%', startangle=90)
plt.xlabel('类别占比')
plt.show()
# 增加一列,分类结果
data['labels'] = y_pred
data.to_csv('Wholesale customers data1.csv')


# 取出每个类的质心
center = kmeans.cluster_centers_
print(center)
df = pd.DataFrame(center[:, 0:6], columns=['新鲜产品', '奶制品', '零食', '冷冻食品', '洗涤和纸', '熟食'])
print(df)
# 画出dataframe的柱状图
df.plot(kind='bar')
plt.xticks(rotation=360)
plt.show()
# 通过对每个类质心点的图表分析得出: 第一类消费者。。。。特点,第二类。。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于电商平台618的Python可视化分析设计与实现源代码主要包括以下内容: 1. 数据获取:利用Python编写爬虫程序,通过接口或网页爬取电商平台618期间的商品销售数据,包括商品名称、价格、销量、评价等信息,并保存为CSV或Excel文件。 2. 数据预处理:对获取到的原始数据进行清洗和处理,包括去除重复数据、处理缺失值、转换数据类型等操作,以确保数据的准确性和完整性。 3. 可视化设计:利用Python的数据可视化库(如Matplotlib、Seaborn、Plotly等),根据需求设计合适的图表形式,如柱状图、折线图、饼图等,展示618期间商品的销售情况、价格变动趋势、评价分布等信息。 4. 可视化实现:根据设计的图表形式,编写Python代码,使用相应的可视化库进行绘图,并设置合适的图表标题、坐标轴标签、图例等内容,以增加图表的可读性和信息传达效果。 5. 交互功能添加:根据需要,可以添加交互式功能,例如鼠标悬停显示细节信息、图表类型选择切换等,以增强用户体验。 6. 结果呈现:将生成的可视化图表保存为图片或网页的形式,以便在电商平台618分析报告中使用或在线展示。 总结起来,基于电商平台618的Python可视化分析设计与实现源代码主要包括数据获取、数据预处理、可视化设计、可视化实现、交互功能添加和结果呈现等步骤。通过这些步骤的实施,可以将618期间的电商数据以直观、清晰、易于理解的图表形式展示出来,为业务决策和数据分析提供有力支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值