数据清洗入库
使用python连接数据库mysql,然后在一张数据表的基础上读取到数据。
如果数据大,连接mysql时读取数据的速度很慢的时候。使用sql语句获取想要的信息后,再创建一张新表保存到数据库,为数据可视化的数据做准备:
思路:
连接数据库--> SQL:创建新表 (数据太少,查询很快就没有必要) --> SQL:查询需要的数据 -->SQL:数据插入新表保存--> 关闭连接
连接数据库准备:
from pymysql import *
#连接本地数据库
conn = Connection(
host='localhost',
port=3306,
user='用户',
password="密码",
database = '数据库名'
)
1、所有买家各消费行为对比
cur = conn.cursor()
sql_0="""
create table pie_dis_data(
act int
)
"""
cur.execute(sql_0)
# 只去重购买行为的数据,避免刷单行为。
sql="""
select act
from
(select count(user_id) act from user_log where action='0'
union all
select count(user_id) act from user_log where action='1'
union all
select count(distinct user_id) act from user_log where action='2'
union all
select count(user_id) act from user_log where action='3')
as temp;
"""
cur.execute(sql)
datas=cur.fetchall()
for data in datas:
sql2 = "insert into pie_dis_data(act)\
values('%s')" % \
(data[0])
cur.execute(sql2)
conn.commit()
conn.close()
2、男女买家交易对比
3、男女买家各个年龄段交易对比
cur = conn.cursor()
#创建新表
sql_0="""
create table ee_data(
cat_id int,
merchat_id int,
brand_id int,
month int,
day int,
action int,
age_range int,
gender_age int,
province varchar(50)
);
"""
cur.execute(sql_0)
#筛选数据
sql="""
select * from user_log ul where `month` =11 and `day` =11;
"""
cur.execute(sql)
#读取数据
datas=cur.fetchall()
#遍历数据
for data in datas:
#数据插入新表
sql2 = "insert into ee_data(user_id,item_id,cat_id,merchat_id,brand_id,\
month,day,action,age_range,gender_age,province)\
values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % \
(data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8],data[9],data[10])
cur.execute(sql2)
conn.commit()
#关闭连接,取消端口占用
conn.close()
4、商品类别交易额对比
cur = conn.cursor()
#创建新表
sql_0="""
create table cat_data(
cat_id int,
count_num int
)
"""
cur.execute(sql_0)
# 只去重购买行为的数据,避免刷单行为。
sql="""
select ed.cat_id ,count( ed.`action`) count_num
from ee_data ed
where ed.`action` =2
group by ed.cat_id
order by ed.cat_id ;
"""
#执行SQL语句
cur.execute(sql)
#读取数据
datas=cur.fetchall()
for data in datas:
#传入数据
sql2 = "insert into cat_data(cat_id,count_num)\
values('%s','%s')" % \
(data[0],data[1])
cur.execute(sql2)
conn.commit()
#关闭数据库连接
conn.close()
5、各省份的销量对比 思路与前一个相同
6、回头客预测分数对比
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!