Python+大数据-数据分析与处理(六)-综合案例

Python+大数据-数据分析与处理(六)-综合案例

案例一:Appstore数据分析

  • 学习目标
  • 掌握描述性数据分析流程
  • 能够使用pandas、seaborn进行数据分析和可视化

1.案例介绍

案例背景

  • 对 App 下载和评分数据分析,帮助 App 开发者获取和留存用户
  • 通过对应用商店的数据分析为开发人员提供可操作的意见

分析需求

  • 免费和收费的 App 都集中在哪些类别
  • 收费 App 的价格是如何分布的,不同类别的价格分布怎样
  • App文件的大小和价格以及用户评分之间是否有关

分析流程

1)数据概况分析

  • 数据行/列数量
  • 缺失值分布

2)单变量分析

  • 数字型变量的描述指标(平均值,最小值,最大值,标准差等)
  • 类别型变量(多少个分类,各自占比)

3)多变量分析

  • 按类别交叉对比
  • 变量之间的相关性分析

4)可视化分析

  • 分布趋势(直方图)
  • 不同组差异(柱状图)
  • 相关性(散点图/热力图)

数据集说明

本案例使用 applestore.csv 数据集,其数据字段如下:

字段说明 id

App ID:每个 App 唯一标识 track_name

App 的名称 size_bytes

以 bytes 为单位的 App 大小 price

定价(美元) rating_count_tot

App 所有版本的用户评分数量 rating_count_ver

App 当前版本的用户评分数量 prime_genre

App 的类别 user_rating

App 所有版本的用户评分 sup_devices.num

支持的 iOS 设备数量 ipadSc_urls.num

App 提供的截屏展示数量 lang.num

支持的语言数量

2. 数据清洗


import pandas as pd
app = pd.read_csv('./data/applestore.csv',index_col=0)
app

Python+大数据-数据分析与处理(六)-综合案例

app.info()

Python+大数据-数据分析与处理(六)-综合案例

app.describe()

Python+大数据-数据分析与处理(六)-综合案例

app.shape
(7197, 10)

app['size_mb'] = app['size_bytes']/(1024*1024)
app

Python+大数据-数据分析与处理(六)-综合案例

app.size_mb.describe()

Python+大数据-数据分析与处理(六)-综合案例

app['paid'] = app['price'].apply(lambda x : 1 if x>0 else 0)
app

Python+大数据-数据分析与处理(六)-综合案例

app['paid'].value_counts()

Python+大数据-数据分析与处理(六)-综合案例

3.单变量分析


app.price.value_counts()

Python+大数据-数据分析与处理(六)-综合案例

bins = [0,2,10,30]
labels=[',',']

app['price_new'] = pd.cut(app.price,bins ,right=False,labels=labels)
app.head(20)

Python+大数据-数据分析与处理(六)-综合案例

app.groupby('price_new')['price'].describe()

Python+大数据-数据分析与处理(六)-综合案例

app.groupby('prime_genre')['price'].describe()

Python+大数据-数据分析与处理(六)-综合案例

app = app[app['price'] 49.99]
app.head()

Python+大数据-数据分析与处理(六)-综合案例

app.rating_count_tot.describe()

Python+大数据-数据分析与处理(六)-综合案例

4.业务数据可视化

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

sns.relplot(x='prime_genre', y='user_rating', kind='line', data=app, height=5, aspect=3)

plt.xticks(
    rotation=45,
    horizontalalignment='right',
    fontweight='light',
    fontsize='x-large'
)

Python+大数据-数据分析与处理(六)-综合案例

plt.figure(figsize=(20,8))

app_result = app[app['price']9.99]
sns.displot(app_result['price'])

Python+大数据-数据分析与处理(六)-综合案例

plt.figure(figsize=(20, 8))
sns.boxplot(x='price', y='prime_genre', data=app[app['paid']==1])
plt.yticks(fontweight='light', fontsize='x-large')

Python+大数据-数据分析与处理(六)-综合案例

top5 = app.groupby('prime_genre')['price'].count().sort_values(ascending=False).head()
app5 = app[app.prime_genre.isin(top5.index)]

plt.figure(figsize=(20, 8))
sns.boxplot(x='price', y='prime_genre', data=app5[app5['paid']==1])

Python+大数据-数据分析与处理(六)-综合案例

plt.figure(figsize=(20, 8))
sns.scatterplot(x='price', y='user_rating', data=app)

Python+大数据-数据分析与处理(六)-综合案例

plt.figure(figsize=(20, 8))
sns.barplot(x='prime_genre', y='user_rating', data=app5, hue='paid')

Python+大数据-数据分析与处理(六)-综合案例

5.业务解读

  • *业务问题1:免费或收费 App 集中在哪些类别?

plt.figure(figsize=(20,8))

sns.countplot(y='prime_genre',data=app,
                order=app['prime_genre'].value_counts().index,hue='paid')

Python+大数据-数据分析与处理(六)-综合案例
  • *业务问题2:免费与收费的 App 在不同评分区间的分布?

bins =[0,0.5,2.5,4.5,5.1]
app['rating_level'] = pd.cut(app.user_rating,bins,right=False)
app.groupby('rating_level')['user_rating'].describe()

Python+大数据-数据分析与处理(六)-综合案例
py
plt.figure(figsize=(20,8))
sns.countplot(x='paid',data=app,hue='rating_level')

Python+大数据-数据分析与处理(六)-综合案例
  • *业务问题3:APP的价格、大小和用户评分之间有关系吗?

app[['user_rating','price','size_mb']].corr()

Python+大数据-数据分析与处理(六)-综合案例

plt.figure(figsize=(20,8))
sns.heatmap(app[['user_rating','price','size_mb']].corr())

Python+大数据-数据分析与处理(六)-综合案例

案例二: 优衣库销售数据分析

  • 学习目标
  • 掌握描述性数据分析流程
  • 能够使用pandas、seaborn进行数据分析和可视化

1.案例介绍

案例背景

  • 数据集中包含了不同城市优衣库门店的销售记录
  • 通过对销售数据的分析,为运营提供一些有益信息

分析需求

  • 不同产品的销售情况,顾客喜欢的购买方式
  • 销售额和成本之间的关系
  • 购买时间偏好

数据集说明

本案例使用 uniqlo.csv 数据集,其数据字段如下:

字段说明 store_id

门店随机id city

城市 channel

销售渠道:网购自提、门店购买 gender_group

客户性别:男、女 age_group

客户年龄段 wkd_ind

购买发生的时间:周末、周间 product

产品类别 customer

客户数量 revenue

销售金额 order

订单数量 quant

购买产品的数量 unit_cost

成本(制作+运营)
2.加载数据


import pandas as pd
uniqlo = pd.read_csv('./data/uniqlo.csv')
uniqlo

Python+大数据-数据分析与处理(六)-综合案例

uniqlo.info()

Python+大数据-数据分析与处理(六)-综合案例

uniqlo.shape

(22293, 12)

uniqlo.describe()

Python+大数据-数据分析与处理(六)-综合案例

uniqlo[uniqlo.revenue<1]

Python+大数据-数据分析与处理(六)-综合案例

uniqlo[uniqlo.revenue>5000]

Python+大数据-数据分析与处理(六)-综合案例
3. 业务解读
  • *不同产品的销售情况

uniqlo.groupby('product')['order'].sum().sort_values(ascending=False)

Python+大数据-数据分析与处理(六)-综合案例

uniqlo.groupby('product')['quant'].sum().sort_values(ascending=False)

Python+大数据-数据分析与处理(六)-综合案例
py
uniqlo.pivot_table(values='quant',
                    index='product',
                    columns='city',
                    aggfunc='sum').sort_values('上海',ascending=False)

Python+大数据-数据分析与处理(六)-综合案例

uniqlo.pivot_table(values='quant',
                  index='product',
                  columns=['city','channel'],
                  aggfunc='sum')

Python+大数据-数据分析与处理(六)-综合案例
  • *用户习惯使用哪种方式进行消费

uniqlo.groupby('channel').order.sum()

Python+大数据-数据分析与处理(六)-综合案例
y
uniqlo.pivot_table(index='city',columns='channel',
                  values='order',aggfunc='sum').sort_values('线上',ascending=False)

Python+大数据-数据分析与处理(六)-综合案例

uniqlo.pivot_table(values='quant',index='city',
                  columns='channel',aggfunc='sum')

Python+大数据-数据分析与处理(六)-综合案例
  • *用户消费习惯(周间还是周末)

uniqlo.wkd_ind.value_counts()

Python+大数据-数据分析与处理(六)-综合案例

wkd_sales = uniqlo.pivot_table(values='quant',index='wkd_ind',
                              columns='city',aggfunc='sum')
wkd_sales

Python+大数据-数据分析与处理(六)-综合案例

wkd_sales.loc['weekday_avg',:]= wkd_sales.loc['Weekday',:] /5
wkd_sales.loc['weekend_avg',:]= wkd_sales.loc['Weekend',:] /2
wkd_sales

Python+大数据-数据分析与处理(六)-综合案例
  • *销售额和成本之间的关系

uniqlo[['revenue','unit_cost']].corr()

Python+大数据-数据分析与处理(六)-综合案例
y
uniqlo.unit_cost.value_counts()

Python+大数据-数据分析与处理(六)-综合案例

uniqlo2 = uniqlo[uniqlo.revenue>1]
uniqlo2.head()

Python+大数据-数据分析与处理(六)-综合案例

uniqlo2['rev_per_goods'] = uniqlo2['revenue'] / uniqlo2['quant']
uniqlo2[['rev_per_goods','unit_cost']].corr()

Python+大数据-数据分析与处理(六)-综合案例
p
sns.heatmap(uniqlo2[['rev_per_goods', 'unit_cost']].corr())

Python+大数据-数据分析与处理(六)-综合案例

Original: https://blog.csdn.net/qq_45588318/article/details/127447517
Author: 呆猛的呆呆小哥
Title: Python+大数据-数据分析与处理(六)-综合案例

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/723117/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球