位置: IT常识 - 正文

数据分析| Pandas200道练习题,使用Pandas连接MySQL数据库(数据分析课)

发布时间:2024-01-16
数据分析| Pandas200道练习题,使用Pandas连接MySQL数据库 文章目录使用Pandas连接数据库编码环境依赖包read_sql_query()的使用read_sql_table()的使用read_sql() 函数的使用to_sql()写入数据库的操作删除操作更新操作总结:

推荐整理分享数据分析| Pandas200道练习题,使用Pandas连接MySQL数据库(数据分析课),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:数据分析师,数据分析师一般一个月多少钱,数据分析案例网站,数据分析师一般一个月多少钱,数据分析课,数据分析网站,数据分析课,数据分析课,内容如对您有帮助,希望把文章链接给更多的朋友!

使用Pandas连接数据库

通过pandas实现数据库的读,写操作时,首先需要进行数据库的连接,然后通过调用pandas所提供的数据库读写函数与方法来实现数据库的读写操作。

Pandas提供了3个函数用于数据库的读操作

read_sql_query() 可以实现对数据库的查询操作,但是不能直接读取数据库中的某个表,需要在sql语句中指定查询命令与数据表的名称read_sql_table() 只能读取数据库某一个表的内的数据,并且该函数需要sqlalchemy 模块的支持才能使用read_sql()函数,既可以读取数据库中某一个表的数据,也可以进行执行具体的查询操作。

Pandas提供了1个函数用于数据库的写操作

to_sql()该函数用户实现数据的写入操作,通过DataFrame对象直接调用,和将DataFrame对象保存为其他类型的文件类似。编码环境

Jupyter Notebook

依赖包pymysqlsqlalchemy 该模块 是在使用read_sql_table() 函数时必须要用的模块

安装包

pip install pymysqlpip install sqlalchemyread_sql_query()的使用

参数

pd.read_sql_query( sql, # 需要执行查询的sql语句 con, # 数据库的连接 index_col=None, 字符串或字符串列表,可选,默认值:无 coerce_float: 'bool' = True, 尝试将非字符串,非数字对象(如decimal.Decimal)的值转换为浮点值 params=None, parse_dates=None, chunksize: 'int | None' = None, dtype: 'DtypeArg | None' = None,)

pd.read_sql_query() 函数返回的数据类型时DataFrame

案例与使用

import pandas as pdimport pymysql # 导入操作mysql的数据包import sqlalchemy # 使用pymysql进行连接数据库db = pymysql.connect(host='127.0.0.1',user='root',passwd='123456',port=3306,charset='utf8',database='comment_v1')# user 用户名# password 密码# host 端口号# database 数据库名# charset 编码格式# 编写sql语句sql = 'select * from user_comment'# 通过read_sql_query函数进行查询sql_query_data = pd.read_sql_query(sql=sql,con=db)sql_query_data

read_sql_table()的使用

使用read_sql_table() 函数我们需要使用sqlalchemy 模块进行连接数据库,通过这个模块我们才可以对某一个表进行查询。

在使用其他的驱动程序的时候,会报NotImplementedError错误。

NotImplementedError: read_sql_table only supported for SQLAlchemy connectable.

参数

pd.read_sql_table( table_name: 'str', # 数据库名称 con, # 数据库连接 schema: 'str | None' = None, index_col: 'str | Sequence[str] | None' = None, coerce_float: 'bool' = True, parse_dates=None, columns=None, chunksize: 'int | None' = None,)数据分析| Pandas200道练习题,使用Pandas连接MySQL数据库(数据分析课)

read_sql_table() 函数返回DataFrame类型 案例与使用

# 使用sqlalchemy连接数据库,依次设置sql_query_db = sqlalchemy.create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/comment_v1")# mysql+pymysql://root:123456@127.0.0.1:3306/comment_v1"# mysql 连接的数据库类型# pymysql 连接数据库的驱动# root 用户名# 123456 密码# 127.0.0.1 数据库地址# 3306端口号 # comment_v1连接的数据库名称# 通过read_sql_table table = pd.read_sql_table(table_name='user_comment',con=sql_query_db)table

read_sql() 函数的使用

read_sql()使用pymysql或者sqlalchemy对象都可以

参数

pd.read_sql( sql, # sql语句 con, # 连接对象 index_col: 'str | Sequence[str] | None' = None, coerce_float: 'bool' = True, params=None, parse_dates=None, columns=None, chunksize: 'int | None' = None,)

案例与使用

# 通过read_sql函数读取数据库的信息# 使用pymysql进行连接数据库db = pymysql.connect(host='127.0.0.1',user='root',passwd='123456',port=3306,charset='utf8',database='comment_v1')sql = 'select * from user_comment'read_sql = pd.read_sql(sql=sql,con=db)read_sql# 通过read_sql函数读取数据库的信息# 使用pymysql进行连接数据库sql_query_db = sqlalchemy.create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/comment_v1")sql = 'select * from user_comment'read_sql = pd.read_sql(sql=sql,con=sql_query_db )read_sql

to_sql()写入数据库的操作

to_sql方法同样需要使用SQLAlchemy模块的支持 参数

df.to_sql( name: 'str', # 表名称 con, # 数据库连接 schema=None, if_exists: 'str' = 'fail', # fail如果表已经存在就不执行写入,replace 如果表存在就删除原来的表,再进行写入,append代表在原有数据表中添加数据 index: 'bool_t' = True, # 是否将行索引写入数据库中 index_label=None, chunksize=None, dtype: 'DtypeArg | None' = None, method=None,)

案例与使用

# 使用sqlalchemy模块进行连接sql_query_db = sqlalchemy.create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/atguigudb")data = { "A":[1,2,3,4], "B":[6,7,8,9], "C":[4,3,2,1]}df = pd.DataFrame(data)df.to_sql('to_sql_dome',con=sql_query_db,if_exists='append')# 测试,查询sql = "select * from to_sql_dome"read_df = pd.read_sql(sql=sql,con=sql_query_db)read_df

结果

如和删除和更新数据库中的数据,pandas官方并没有提供相应的函数,但是我们同样可以使用read_sql和read_sql_query来进行实现对数据的删除和修改(sql语句会执行,但是程序会报错),还可以通过原生python利用哦个pymysql中的execute()方法来执行对数据的删除和修改。 在实际生产过程中并不建议这样操作,因为在实际过程中数据对公司是非常重要的,作为一个数据分析师我们并不会拿到删除和更新操作的权限,数据分析也不会修改原数据,在进行分析和建模的所拿到的数据都是复制数据库的数据。

删除操作

删除to_sql_dome 表中A = 1的一行数据

sql = "DELETE FROM to_sql_dome WHERE A = 1;"read_df = pd.read_sql(sql=sql,con=sql_query_db)

执行上面的代码以后会报错 使用pymsql和sqlalchemy两种的报错不一样

sqlalchemy:ResourceClosedError: This result object does not return rows. It has been closed automatically.pymsql:TypeError: 'NoneType' object is not iterable

更新操作sql = "update to_sql_dome set B=2 where A = 4"read_df = pd.read_sql(sql=sql,con=db)

执行后同样也会报错,使用pymsql和sqlalchemy两种的报错不一样

sqlalchemy:ResourceClosedError: This result object does not return rows. It has been closed automatically.pymsql:TypeError: 'NoneType' object is not iterable```rceClosedError: This result object does not return rows. It has been closed automatically.

最后在强调一下,pandas并不推荐使用read_sql和read_sql_query来进行实现对数据的删除和更新,如果想对数据进行操作,可以使用原生的python利用pymysql进行操作。

总结:

通过上面的四个方法我们发现Pandas操作数据库还是很方便的:

read_sql()和read_sql_query()都是通过执行sql来进行查询的操作,在查询数据时更重要的是对sql语句的掌握。read_sql_table() 是通过指定表名进行查询整个表的数据to_sql()写入数据库,可以根据if_exists三个参数的不同来控制保存的数据表是删除重新保存还是追加或者是不进行操作。

本文链接地址:https://www.jiuchutong.com/zhishi/297428.html 转载请保留说明!

上一篇:vue父子组件传值不能实时更新(vue父子组件传值方法)

下一篇:vue实现将自己网站(h5链接)分享到微信中形成小卡片(超详细)(vue引入网络js)

  • 20个博客SEO优化技巧(关于seo博客优化问题)

    20个博客SEO优化技巧(关于seo博客优化问题)

  • iQOO锁屏怎么设置健康码(iQOO锁屏怎么设置动态壁纸)

    iQOO锁屏怎么设置健康码(iQOO锁屏怎么设置动态壁纸)

  • 抖音极速版如何邀请新用户赚红包(抖音极速版如何绑定支付宝)

    抖音极速版如何邀请新用户赚红包(抖音极速版如何绑定支付宝)

  • 朋友圈怎么只发文字,不带图片的(朋友圈怎么只发图片)

    朋友圈怎么只发文字,不带图片的(朋友圈怎么只发图片)

  • 京东退款后京贴返还吗(退货后京东金贴)

    京东退款后京贴返还吗(退货后京东金贴)

  • iphone快充响两声(iphone快充响两声间隔)

    iphone快充响两声(iphone快充响两声间隔)

  • 微信只对一个人可见他知道吗(微信只对一个人来电设置静音)

    微信只对一个人可见他知道吗(微信只对一个人来电设置静音)

  • qq笑脸是什么意思(qq笑脸表情)

    qq笑脸是什么意思(qq笑脸表情)

  • 微信设置了仅聊天还能看到朋友圈吗(微信设置了仅聊天可以打语音视频吗)

    微信设置了仅聊天还能看到朋友圈吗(微信设置了仅聊天可以打语音视频吗)

  • 笔记本不能开机的几个情况(惠普笔记本不能开机)

    笔记本不能开机的几个情况(惠普笔记本不能开机)

  • 微信朋友圈怎么发gif(微信朋友圈怎么设置三天显示)

    微信朋友圈怎么发gif(微信朋友圈怎么设置三天显示)

  • adobe视频剪辑软件叫什么(adobe视频剪辑软件叫什么Ai)

    adobe视频剪辑软件叫什么(adobe视频剪辑软件叫什么Ai)

  • tl-wdr5600是不是千兆(tlwdr5600)

    tl-wdr5600是不是千兆(tlwdr5600)

  • 电脑腾讯会议听不到主持人声音(电脑腾讯会议听不到别人声音)

    电脑腾讯会议听不到主持人声音(电脑腾讯会议听不到别人声音)

  • 12ah和20ah充电器有什么区别(12ah的充电器能给20ah的电瓶充电吗)

    12ah和20ah充电器有什么区别(12ah的充电器能给20ah的电瓶充电吗)

  • 蓝牙耳机突然改外放了(蓝牙耳机突然改外放了,重启后还是外放)

    蓝牙耳机突然改外放了(蓝牙耳机突然改外放了,重启后还是外放)

  • 企鹅电竞编辑打不开为啥(企鹅电竞 跳槽)

    企鹅电竞编辑打不开为啥(企鹅电竞 跳槽)

  • opporeno2是不是5G手机(opporeno2是不是曲面屏)

    opporeno2是不是5G手机(opporeno2是不是曲面屏)

  • x为什么无线充电发热(苹果x无线充电慢是什么原因)

    x为什么无线充电发热(苹果x无线充电慢是什么原因)

  • 手机视频模糊怎么调(手机视频模糊怎么变清晰度)

    手机视频模糊怎么调(手机视频模糊怎么变清晰度)

  • 8p耳机怎么用(苹果8p耳机怎么用)

    8p耳机怎么用(苹果8p耳机怎么用)

  • 怎么把微信群放到桌面(怎么把微信群放到一起)

    怎么把微信群放到桌面(怎么把微信群放到一起)

  • 音乐和视频怎么合成(音乐和视频怎么卡点)

    音乐和视频怎么合成(音乐和视频怎么卡点)

  • 苹果x5g网络可以用吗(苹果x连接5gwifi)

    苹果x5g网络可以用吗(苹果x连接5gwifi)

  • p30值得买吗(p30还值得买吗?)

    p30值得买吗(p30还值得买吗?)

  • 怎么摇步数(怎么摇步数?)

    怎么摇步数(怎么摇步数?)

  • vue3报错:runtime-core.esm-bundler.js:38 [Vue warn]: Invalid prop: type check failed for prop “modelVal(vue错误提示)

    vue3报错:runtime-core.esm-bundler.js:38 [Vue warn]: Invalid prop: type check failed for prop “modelVal(vue错误提示)

  • 税控盘开票软件访问数据库错误
  • 所得税的会计分录怎么做
  • 金蝶报账怎么报销
  • 永久性差异什么是暂时性差异
  • 用房租入股
  • 转回存货跌价准备为什么是可抵扣暂时性差异
  • 清产核资与清算的关系
  • 预缴 汇算清缴
  • 季度预缴能不能弥补亏损
  • 一般纳税人可以转小规模纳税人吗
  • 销售票据和发票的区别是什么?
  • 融资租入的办公楼属于固定资产吗
  • 会计速动比率怎么算
  • 公司注销时应付职工薪酬怎么处理
  • 固定资产累计折旧完了怎么办
  • 开给天猫的服务费分录如何做
  • 业务有提成个税怎么扣
  • 小规模应纳税额怎么算
  • 契税和印花税入哪个科目
  • 购进要不要交印花税
  • 社会团体非限定性净资产
  • 年增收节支总额与新增利税的关系
  • 土地增值税的土地成本要扣除增值税吗
  • 公司注销 缴税
  • flash插件安装后还是不能播放
  • 公司租房中介费能报销吗
  • bios 怎么进去
  • 收入成本配比原则
  • Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
  • 为什么链接网线后无法链接网络
  • 360safe删除不了怎么办
  • swoole如何使用
  • 计提短期借款利息资产增加还是减少
  • php实现观察者模式
  • uniapp 信息推送
  • 利润分配弥补亏损会计分录
  • 盈余公积金可以用来扩大公司生产经营
  • 专项储备怎么理解
  • 分公司?
  • vuescan怎么安装
  • 差旅费报销会议记录
  • 公司投资一家公司然后再投资
  • 制造费用月末一般有余额吗
  • 数据库 sql优化
  • 税金及附加的科目核算有哪些
  • 收到现金存款
  • 企业记账的相关规定
  • 其他债权投资的公允价值变动计入什么科目
  • 公司法人与股东的区别
  • 上期留底增值税什么意思
  • 开具发票后什么情况下可以零申报?
  • 为什么要办理外地身份证
  • 银行手续费发票负数是啥意思
  • 公司土地被征收怎么办
  • 党组织专项经费包括什么
  • 替其他公司支付工资怎么做账
  • 什么经营范围可以开推广服务费
  • 投资其他公司做什么科目
  • 为什么要挂靠其他劳务派遣公司?有什么利弊?
  • 管理费用标准制定
  • mysql字段超长
  • vmware如何用
  • 如何用win7
  • winxp无法删除文件
  • linux 零拷贝技术
  • linux打成zip包
  • Linux系统怎么设置中文输入法
  • node.js axios
  • 可以在windows环境下双击而直接放映
  • android天气预报开发极简
  • scrollview用法
  • sdk有问题
  • jquery关闭当前页面
  • 2015年5-6月关于Android用户隐私保护的3篇顶级论文【2015.5-2015.6】
  • python flask 路由
  • 出租车票如何验真
  • 上海各区税务大厅
  • 增值税征税范围口诀
  • 股权转让税务备案时间
  • 海关行政处罚实施条例的适用范围
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号