位置: IT常识 - 正文

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

编辑:rootadmin
数据分析| 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)

  • 如何找网站软文推广办法(网站软文推广网站)

    如何找网站软文推广办法(网站软文推广网站)

  • switch pro手柄怎么关机(switchpro手柄怎么连接ns)

    switch pro手柄怎么关机(switchpro手柄怎么连接ns)

  • 手机迅雷积分有哪些获得方法(迅雷会员什么积分可以换)

    手机迅雷积分有哪些获得方法(迅雷会员什么积分可以换)

  • poco手机是什么品牌(pocophone是什么手机)

    poco手机是什么品牌(pocophone是什么手机)

  • 酷狗的vip可以2人一起用吗(酷狗的vip可以换到另外的账号上吗)

    酷狗的vip可以2人一起用吗(酷狗的vip可以换到另外的账号上吗)

  • 投影仪幕布和白墙的区别(投影仪幕布和白墙哪个对眼睛好)

    投影仪幕布和白墙的区别(投影仪幕布和白墙哪个对眼睛好)

  • 抖音钻卡怎么集齐(抖音里的抖音钻卡怎么集)

    抖音钻卡怎么集齐(抖音里的抖音钻卡怎么集)

  • 同时发布视频在抖音快手上有影响吗

    同时发布视频在抖音快手上有影响吗

  • pr剪辑只有声音看不到视频(pr剪辑声音与画面不同步)

    pr剪辑只有声音看不到视频(pr剪辑声音与画面不同步)

  • cad椭圆命令快捷键是什么(autocad椭圆形快捷键)

    cad椭圆命令快捷键是什么(autocad椭圆形快捷键)

  • 蚂蚁森林保护地可以重复领吗(蚂蚁森林保护地巡护答案大全)

    蚂蚁森林保护地可以重复领吗(蚂蚁森林保护地巡护答案大全)

  • 抖音右上角抖一下是什么意思(抖音右上角在哪)

    抖音右上角抖一下是什么意思(抖音右上角在哪)

  • els-an00是什么型号(ele-an00是什么型号)

    els-an00是什么型号(ele-an00是什么型号)

  • 华为p30防水到什么程度(华为p30防水级别高吗)

    华为p30防水到什么程度(华为p30防水级别高吗)

  • 光猫重启后不能上网怎么办(光猫重启后路由器连不上网怎么办)

    光猫重启后不能上网怎么办(光猫重启后路由器连不上网怎么办)

  • 微信解封后多久正常使用(微信解封后多久才可以让附近的人看到)

    微信解封后多久正常使用(微信解封后多久才可以让附近的人看到)

  • 手提电脑怎么强制关机(手提电脑配置怎么选)

    手提电脑怎么强制关机(手提电脑配置怎么选)

  • 捡到华为手机怎么激活(捡到华为手机怎么办才能自己用)

    捡到华为手机怎么激活(捡到华为手机怎么办才能自己用)

  • 怎么修改网页编码(网页 修改)

    怎么修改网页编码(网页 修改)

  • web前端是webapp吗(web前端是软件开发吗)

    web前端是webapp吗(web前端是软件开发吗)

  • iqoo怎么设置压感按键(iqoo8怎么设置压感)

    iqoo怎么设置压感按键(iqoo8怎么设置压感)

  • iphone xr隔空投送怎么用(iphonexr隔空投送没反应)

    iphone xr隔空投送怎么用(iphonexr隔空投送没反应)

  • 为什么qq扩列资料保存不了(为什么qq扩列资料填写后又不见了)

    为什么qq扩列资料保存不了(为什么qq扩列资料填写后又不见了)

  • 手机拨打电话时黑屏怎么办(手机拨打电话时自动挂断是怎么回事)

    手机拨打电话时黑屏怎么办(手机拨打电话时自动挂断是怎么回事)

  • vue:聊天对话框的实现(vue聊天系统)

    vue:聊天对话框的实现(vue聊天系统)

  • 个体户如何报税步骤
  • 报关单完成出口后收汇期限4月30日
  • 装修费用摊销是当月还是次月
  • 公司往来借款在现金流量表哪里填写
  • 个人为什么不能寄活鱼
  • 合伙制创投企业
  • 存在商业折扣的情况下,应收账款按什么金额入账?
  • 商业承兑汇票贴现手续费是多少
  • 财产理赔收入怎么做账
  • 会计速动比率怎么算
  • 往来款太大怎么处理
  • 国税开运输发票后地税怎么报税?
  • 报销发票财务一旦作废报销人可以收回吗?
  • 增值说税率怎么计算
  • 个人取得利息需要缴纳增值税吗
  • 企业交残疾人基金会计分录怎么做
  • 增值税普通发票几个点
  • 床垫专票可以抵扣吗
  • 工程施工科目月末如何结转
  • 主营业务收入平均增长率计算例题
  • 银行存款日期和起息日期不一样
  • win11如何设置定时关机
  • 公司委托第三方缴纳社保合法吗
  • 兼职劳务费税率是多少
  • 长期股权投资引入新投资者账务处理
  • yolov8训练自己的数据
  • 工地临时设施搭设原则是什么?
  • vue3刷新组件
  • 润滑脂开票属于成品油吗
  • 发票开错需要让客户寄回来吗
  • php web socket
  • 帝国cms怎么加自己的名字
  • 补交之前年度税款怎么调账
  • 收据可以用来做账吗
  • 网页开票流程图解
  • 融资租赁怎么计税
  • 物业监控安装地点要求
  • 购辅助材料会计分录
  • 一般纳税人在任何情形下都可以领购使用增值税专用发票
  • 期权分为哪几种
  • sql纵表转横表
  • SQL一条语句统计记录总数及各状态数
  • 房地产增值税可以抵扣吗
  • 财务报表中存货为负数是什么意思
  • 合同履约成本如何设置明细科目
  • 现金收入支出表怎么填
  • 代开发票要带什么资料?
  • 用友怎么取消月结
  • 库存商品结转成本的金额怎么计算
  • 国库集中支付业务包括哪些
  • 红冲暂估原材料如何做会计分录
  • 厂房违建如何处理
  • 提取银行存款利息分录
  • 顾客办理会员卡要怎么做账?
  • 一般纳税人销售使用过的固定资产
  • 停车费专用发票
  • 升级尝鲜
  • mysql从5.7升级至8.0
  • mysql8 递归
  • 受益无穷还是受用无穷
  • centos6.10修改主机名
  • ubuntu下安装deb文件
  • 苹果官网
  • 如何配置linux系统
  • win8怎么看windows
  • winxp系统设备管理器
  • frameworkservic.exe是什么进程 有什么作用 frameworkservic进程查询
  • win10无法升级系统
  • Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
  • jquery插件是干什么的
  • nodejs示例
  • shell脚本实现自动部署
  • node.js app
  • 在Linux下用scp复制文件无需输入密码的技巧
  • python编程完全入门教程
  • 批量ssh登录
  • 深圳电动车怎么注册登记
  • 软件销售税率13还是6还是9
  • 土地增值税如何入账
  • 重庆税务局app下载官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设