【案例展示】Python与数据库交互
本文作者:寇晓璇,中南财经政法大学统计与数学学院
本文编辑:赵一帆
技术总编:王子一
Stata&Python云端课程来啦!
为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》。关于Stata,爬虫俱乐部推出了系列课程,内容包括字符串函数、正则表达式、爬虫专题和文本分析,可以随心搭配,价格美丽,物超所值,更多信息可查看Stata系列推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》、《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程》等。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦
/导读
首先,在cmd
终端上输入以下命令,用以安装pymysql
库。
pip install pymysql
目前,已有两组xlsx
格式的文件,两组数据展示了连续两天内某些商品的基本信息及销量情况。下面将讲述一下如何利用Python将其分别导入到数据库中,并对二者进行合并、筛选等简单处理。
import pymysql
import pandas as pd
from sqlalchemy import create_engine
其中,host
为MySQL
的服务器地址,本地可用localhost
表示;user
为用户名;password
为密码;port
为MySQL
的服务器端口号,默认为3306
;charset
为使用的字符集。
hair = pymysql.connect(host='localhost',user='root',
password='88888888',port=3306, db='hair', charset='utf8')
pandas
库,分别导入数据1、数据2到数据库中。# 建立连接
conn = create_engine('mysql+pymysql://root:88888888@localhost:3306/hair')
# 导入数据表1
df = pd.read_excel('数据1.xlsx')
try:
df.to_sql('数据1',con = conn, index= False,if_exists= 'replace')
except:
print('error')
# 导入数据表2
df = pd.read_excel('数据2.xlsx')
try:
df.to_sql('数据2',con = conn, index= False,if_exists= 'replace')
except:
print('error')
此时,可以看到,两组数据就导入到了数据库中。cursor = hair.cursor()
1. 更改变量名
为两张表分别修改变量名,便于更好的区分不同表中的数据。
## 要执行的SQL语句
sql1 = "alter table 数据1 change 商品评分 商品评分01 float"
sql2 = "alter table 数据1 change 价格范围 价格范围01 char(20)"
sql3 = "alter table 数据1 change 销量 销量01 int"
sql4 = "alter table 数据1 change 评论数量 评论数据01 int"
sql5 = "alter table 数据2 change 商品评分 商品评分02 float"
sql6 = "alter table 数据2 change 价格范围 价格范围02 char(20)"
sql7 = "alter table 数据2 change 销量 销量02 int"
sql8 = "alter table 数据2 change 评论数量 评论数据02 int"
## 执行语句
cursor.execute(sql1)
cursor.execute(sql2)
cursor.execute(sql3)
cursor.execute(sql4)
cursor.execute(sql5)
cursor.execute(sql6)
cursor.execute(sql7)
cursor.execute(sql8)
2.合并表
按照关键词店铺名称、商品名称合并两张表,并保存到新表数据汇总中。
sql9 = """create table 数据汇总 as select A.店铺名称,A.商品名称,A.商品评分01,A.价格范围01,
A.销量01,A.评论数据01,B.商品评分02,B.价格范围02,B.销量02,B.评论数据02
from 数据1 as A join 数据2 as B
ON A.店铺名称 = B.店铺名称 and A.商品名称 = B.商品名称"""
cursor.execute(sql9)
此时,hair
数据库中多了第三张表,在该表中将数据1、数据2中的有用信息合并了起来。
3. 计算销量变化值
之后,创建新变量销量变化,计算两天内的销量变化值。
sql10 = "alter table 数据汇总 add 销量变化 int"
sql11 = "update 数据汇总 set 销量变化 = 销量02-销量01"
cursor.execute(sql10)
cursor.execute(sql11)
4.查询销量变化最大的三种商品
查询销量变化最大的三种商品,并将查询结果保存到DataFrame
中。
df1 = pd.read_sql("select 商品名称, 销量变化 from 数据汇总 order by 销量变化 desc
limit 3",hair)
display(df1)
cursor.close()
hair.close()
到目前为止,Excel
表格中的数据就被导入到数据库中了,利用pymysql
,替换了以往在Excel
中的菜单式操作,十分方便快捷。以上就是今天的全部内容啦,感谢观看~
后台回复“hair
”可得到本文所用到的两组数据。
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。
对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐 学好这一手,英语词典常在手
玩转Stata中的数学函数
用spmap看中国空气质量戳穿围城面具:安利&劝退一个专业
走进图文并茂的攻略世界
玩转word文档“大变身”——wordconvert
简述递归
OpenCV库——轻松更换证件照背景色800万年薪!还有谁?!
千古伤心词人,词伤几何?
去哪儿网攻略爬取——跟我一起去大理吧
"有你才有团"——Stata爬取王者荣耀英雄海报
如何获取衡量股民情绪的指标?|东方财富股吧标题爬虫
利用Python构建马科维茨有效边界
rangestat,让统计量灵活滚动起来!
听说这样做立项成功率更高哦
如何处理缺失值?这一篇搞定!
善用dataex命令,高效沟通你我他
大数据下的大学分数线排行榜,快来围观!
《觉醒年代》—带你回到百年前
用Stata画的三维图很奇怪怎么办?
如何随机生成满足特定数据特征的新变量?
爬取无法翻页网页——自然科学基金项目及可视化
爬取京东评论数据进行情感分类
Stata与音乐之间的酷炫连接
这些年,爬虫俱乐部走出的博士们!看这里,近五年各校高被引论文上榜名单!
高校经管类核心期刊发文排行榜
疯狂的科研创新加速器——Stata!
关于我们
微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为
作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号
中提出,只需支付少量赏金,我们会在后期的推文里给予解答。