目录

导入库

数据信息

数据探索

数据预处理

数据分析

店铺数量分析

价格分析

付款人数分析

店铺的付款人数分析

发货地分析

描述词云图

口红品牌数量分析

总结

最后


大家好,我是王某人。

最近终于对口红下手啦~从网上获取到了4000+多条的口红数据,进行了数据处理和分析工作,简直是发现了新大陆!

想知道这张图是什么意思吗?请一定要看完全文~

导入库

import pandas as pd
import numpy as np
import re
import jieba# 显示所有列
# pd.set_option('display.max_columns', None)# 显示所有行
# pd.set_option('display.max_rows', None)# 设置value的显示长度为100,默认为50
# pd.set_option('max_colwidth',100)# 绘图相关
import matplotlib.pyplot as plt
from pyecharts.globals import CurrentConfig, OnlineHostType   # 事先导入,防止不出图
from pyecharts import options as opts  # 配置项
from pyecharts.charts import Bar, Scatter, Pie, Line,Map, WordCloud, Grid, Page  # 各个图形的类
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType,SymbolTypeimport plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots  # 画子图

数据信息

数据来自淘气的宝宝tb,主要是爬取了5个字段信息:

  • 价格

  • 店铺

  • 发货地

  • 付款人数

  • 描述信息

通过导入数据,发现最终是4450条:

数据探索

查看下数据的基本信息:数据大小、缺失值、数据类型

数据预处理

预处理工作主要是针对购买人数和发货地两个字段信息进行:

1、购买人数

原始的购买人数是一个字符类型的数据,每个后面带有“人付款”,部分还有“+”。

我们处理数值型的数据,缺失值用0代替:

df["人数"] = df["人数"].fillna("0人付款",inplace=False)  # 缺失值处理def change_buy_people(x):if "+" in "x":return x.split("+")[0]elif "付款" in x:return x.split("人")[0]df["人数"] = df["人数"].apply(change_buy_people)
df

第二步是去掉+号:

第三步:处理带有万的数据

得到最终的结果!!!

2、处理发货地

如果是国内的省份和市,进行切割处理。发货地中存在外国的国家,比如:美国、韩国等

df["发货地"] = df["发货地"].fillna("无信息",inplace=False)df["省_国家"] = df["发货地"].apply(lambda x: x.split(" ")[0] if " " in x else x)
df["市"] = df["发货地"].apply(lambda x: x.split(" ")[1] if " " in x else x)
df.head()

上面就是处理数据的全部过程,你看懂了吗?

数据分析

数据分析不展示具体的数据处理过程,主要是展示结果:

  • 店铺数量分析

  • 价格分析

  • 购买人数分析

  • 发货地分析

  • 描述词云图

店铺数量分析

查看我们获取到的数据中店铺的数量分布情况,我们取出前30名:

  • 天猫国际相关的店铺最多

  • 品牌方面:屈臣氏的最多

通过店铺的占比显示:仍然是天猫的店铺是最多的

价格分析

口红的价格是有高有低的,我们首先看下具体的数值情况: