(Adventure项目)自行车业务数据分析报告(可视化-Power BI)

(Adventure项目)自行车业务数据分析报告(可视化-Power BI)

项目背景
  • Adventure Works Cycles是Adventure Works样本数据库所虚构的公司,这是一家大型跨国制造公司。该公司生产和销售自行车到北美,欧洲和亚洲的商业市场。虽然其基地业务位于华盛顿州博塞尔,拥有290名员工,但几个区域销售团队遍布整个市场。

2019年11月自行车业务分析报告

目录:

  • 一、自行车整体销售表现
  • 二、2019年11月自行车地域销售表现
  • 三、2019年11月自行车产品销售表现
  • 四、用户行为分析
  • 五、2019年11月热品销售分析

本文主要介绍最终报告:借助PowerBI完成的可视化,其他章节可访问本专栏Adventure自行车项目,建议订阅收藏

可视化报告
在这里插入图片描述

总结

一、总体销售情况

  • 近11个月,11月自行车销售量最多,为3438辆;较10月增长14%。
  • 近11个月,11月自行车销售金额最高,超过656万元,较10月增长18%;自行车销售金额与销售数量趋势一致。

二、各地区销售情况

  • 11月华东地区自行车销售量在8个地区中最多,港澳台地区销量较10月增加200%,增速最快,境内则为西北地区销量增速最快,较10月增长28%。
  • 2019年10-11月销量TOP10城市分别为北京、上海、广州、重庆、深圳、武汉、天津、长沙、郑州、西安。

三、细分市场(不同品类自行车)销售情况

  • 公路自行车占比最多,全年市场占有率超过一半,其次为山地自行车,市场占有率在30%左右,旅游自行车市场占有率较小,在15%左右波动。
  • 11月公路自行车,除Road-350-W Yellow外,其他型号的自行车环比都呈上升趋势;Road-650 较10月增长14%,增速最快;Road-150 Red销售占比最高,约为19.63%。
  • 11月山地自行车,除Mountain-500 Silver外,其他型号的自行车环比呈上升的趋势;型号Mountain-200 Black增速最快,为19%;型号Mountain-200 Silver销售份额占比最大
  • 11月旅游自行车,除型号Touring-3000 Yellow、Touring-3000 Blue外,其他型号的自行车呈上升趋势;型号Touring-1000 Yellow较10月增速最快,为27%
    ;型号Touring-1000 Blue销售份额占比最大,为31%

四、用户行为特征

  • 根据年龄断划分,年龄35-39岁消费人数占比最高,为30%;之后随着年龄的增长,占比逐渐下降。
  • 针对年龄和细分市场的关联分析,购买公路自行车占比最大,旅游自行车占比最小,年龄差异对于自行车购买偏好不明显。
  • 根据性别划分,男性用户偏多占比为55%,女性用户占比为45%。
  • 针对性别和细分市场的关联分析,男性和女性购买公路自行车占比最高,购买旅游自行车占比最少,性别差异对于自行车购买偏好不明显。

五、热销产品情况

  • 2019年10-11月自行车销量TOP10的产品分别为product_name
    Mountain-200 Black、Mountain-200 Silver、Road-150 Red、Road-250 Black、Road-250 Red、Road-350-W Yellow、Road-550-W Yellow、Road-750 Black、Touring-1000 Blue、Touring-1000 Yellow。
  • 2019年11月自行车销量增速TOP10的产品分别Mountain-100 Black、Mountain-500 Black、Road-150 Red、Road-250 Black、Road-250 Red、Road-350-W Yellow、Road-650 Black、Touring-1000 Blue、Touring-1000 Yellow、Touring-2000 Blue。
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是对tmdb电影榜单数据集进行可视化分析和建立模型进行评分预测的具体代码实现: 1. 数据准备和清洗 ```python # 导入相关库 import pandas as pd import numpy as np # 读取数据集 df = pd.read_csv('tmdb_5000_movies.csv') # 选择需要的特征 features = ['budget', 'genres', 'homepage', 'id', 'keywords', 'original_language', 'original_title', 'overview', 'popularity', 'production_companies', 'production_countries', 'release_date', 'revenue', 'runtime', 'spoken_languages', 'status', 'tagline', 'title', 'vote_average', 'vote_count'] df = df[features] # 进行数据清洗 df = df.dropna() # 删除空值行 df = df[df['status'] == 'Released'] # 只保留已发布的电影 df = df[df['vote_count'] >= 500] # 只保留投票数大于等于500的电影 ``` 2. 可视化分析 ```python # 导入相关库 import matplotlib.pyplot as plt import seaborn as sns # 绘制电影类型分布图 genres = df['genres'].str.split('|', expand=True).stack().value_counts() plt.figure(figsize=(10, 6)) sns.barplot(x=genres.values, y=genres.index, palette='rocket') plt.title('Genres Distribution') plt.xlabel('Count') plt.ylabel('Genres') # 绘制投票人数分布图 plt.figure(figsize=(10, 6)) sns.distplot(df['vote_count'], kde=False, color='g') plt.title('Vote Count Distribution') plt.xlabel('Vote Count') plt.ylabel('Frequency') # 绘制发行年份分布图 df['release_year'] = pd.DatetimeIndex(df['release_date']).year year_counts = df['release_year'].value_counts().sort_index() plt.figure(figsize=(10, 6)) sns.barplot(x=year_counts.index, y=year_counts.values, color='b') plt.title('Release Year Distribution') plt.xlabel('Year') plt.ylabel('Count') ``` 3. 特征工程 ```python # 对电影类型进行独热编码 genres = df['genres'].str.get_dummies('|') df = pd.concat([df, genres], axis=1) # 对发行日期进行时间特征提取 df['year'] = pd.DatetimeIndex(df['release_date']).year df['month'] = pd.DatetimeIndex(df['release_date']).month df['day'] = pd.DatetimeIndex(df['release_date']).day df = df.drop('release_date', axis=1) ``` 4. 建立模型 ```python # 导入相关库 from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import r2_score # 分离自变量和因变量 X = df.drop(['vote_average', 'title', 'homepage', 'keywords', 'original_title', 'overview', 'production_companies', 'production_countries', 'spoken_languages', 'status', 'tagline', 'genres'], axis=1) y = df['vote_average'] # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 建立线性回归模型 lr = LinearRegression() lr.fit(X_train, y_train) # 预测测试集结果 y_pred = lr.predict(X_test) # 评估模型 r2 = r2_score(y_test, y_pred) print('R-squared: %.2f' % r2) ``` 5. 模型预测 ```python # 对新数据进行评分预测 new_data = pd.DataFrame({'budget': [10000000], 'original_language': ['en'], 'popularity': [10.0], 'revenue': [50000000], 'runtime': [120], 'year': [2020], 'month': [1], 'day': [1], 'Action': [0], 'Adventure': [1], 'Animation': [0], 'Comedy': [0], 'Crime': [0], 'Documentary': [0], 'Drama': [0], 'Family': [0], 'Fantasy': [0], 'Foreign': [0], 'History': [0], 'Horror': [0], 'Music': [0], 'Mystery': [0], 'Romance': [0], 'Science Fiction': [0], 'TV Movie': [0], 'Thriller': [0], 'War': [0], 'Western': [0]}) y_pred_new = lr.predict(new_data) print('Predicted Vote Average:', y_pred_new[0]) ``` 通过以上代码实现,可以对tmdb电影榜单数据集进行可视化分析和建立模型进行评分预测。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值