导入数据库
从某宝爬取下来的数据如图所示:
利用python爬取到的数据字段有商品的标题文本,商品的价格,商品的付款人数,商品的商家地区和商品的图片。
本文将利用python分析一下的问题:
1.商品的价格分布情况以及商品的销量分布情况。
2.商品的价格与销量之间的关系(采用条形图和散点图)
A.由于商品的价格是连续性数值,所以需要将价格进行分段化,再用条形图方式,将每个价格段的商品的销量数可视化。
B.以商品的价格为x轴,商品的销量为y轴,用散点图方式,描绘价格与销量之间的关系
3.进行商家地区的相关分析:利用直方图,描述商家分布详情;同样利用直方图,描述商家地区与平均销量的关系。
4.进行商品的标题文本分析:使用词云,观察哪些词语在标题在出现频率较高;
使用直方图,观察当出现哪些词语时,平均销量较高。
对数据进行清洗
去掉第一列数据,并且对列名重命名
import pandas as pd
data = pd.read_excel('./口红.xlsx')
data = data.drop(["Unnamed: 0"], axis=1)
data.columns = ['标题', '售价', '付款人数', '商家地址', '图片地址']
处理售价列
rawdata = data['售价'].values
newdata = []
for i in rawdata:
i = i.replace('元', '')
i = float(i)
newdata.append(i)
data['售价'] = newdata
处理付款人数列
data['付款人数'] = data['付款人数'].fillna('0人付款')
rawdata = data['付款人数'].values
newdata = []
for i in rawdata:
i = i[:-3]
i = i.replace('+', '')
if '万' in i:
i = i.replace('万', '')
if '.' in i:
i = i.replace('.', '')
i = i + '000'
else:
i = i + '0000'
i = float(i)
newdata.append(i)
data['付款人数'] = newdata
写入数据库
import pandas as pd
import pymysql
from sqlalchemy import create_engine
data=pd.read_excel('./处理后的口红.xlsx')
# 建立连接,username替换为用户名,passwd替换为密码,test替换为数据库名
conn = create_engine('mysql+pymysql://root:1356130369@localhost:3306/test',encoding='utf8')
# 写入数据,table_name为表名,‘replace’表示如果同名表存在就替换掉
pd.io.sql.to_sql(data, "lips", conn, if_exists='replace')
sales = []
number = []
con = create_engine('mysql+pymysql://root:1356130369@localhost:3306/test', encoding='utf8')
sql = "select 售价,付款人数 from lips "
result = con.execute(sql)
result=result.fetchall()
# 每一个样本是一个元组,元组是列表的元素
for item in result:
sales.append(item[0]) # sales是一个列表
number.append(item[1]) # number是一个列表