Python使用Pandas导入数据库sql_pandas 导入数据库-程序员宅基地

技术标签: pandas  python  数据分析  Python应用  数据库  开发语言  

一、前言

对于关系数据库的访问,Python社区已经制定出一个标准,称为Python Database API Specification。Mysql,Oracal等特定数据库模块都遵从这一规范,所以即便对于不同的数据库诸如sqlite, mysql, oracle等等, Python都可通过对应的数据库适配器模块来对它们进行访问, 且这些数据库模块遵循的接口标准都是统一的。

关于这方面的具体内容,可以参考我的另一篇博文:
Python数据库编程之关系数据库API规范

二、准备工作

本文用例使用的数据库是MySql, 这里假设你已经安装好MySql数据库并且创建好了对应的表。

关于Windows系统上安装并使用MySql的相关内容,可以参考我的另一篇博文:
如何在Windows上安装并启动MySql

关于Python如何与MySql数据库进行交互,可以参考我的另一篇博文:
Python基础之MySql数据库交互

三、从数据库导入数据到Pandas

Python从数据库导入数据到Pandas,需要经历两个步骤:

  • python与数据库进行连接

  • python执行sql查询

老的书写方式(执行后pandas会报一条warning log)

import pymysql
import pandas as pd

host = 'localhost'
user = 'root'
passwd = '123456'
db = 'mytestdb'

conn = pymysql.connect(host=host,
                       user=user,
                       passwd=passwd,
                       db=db,
                       charset='utf8')

sql = 'SELECT * FROM students'

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_sql(sql, conn)
print(df)

新的书写方式(需要安装sqlalchemy库):

from sqlalchemy import create_engine
import pandas as pd

MYSQL_HOST = 'localhost'
MYSQL_PORT = '3306'
MYSQL_USER = 'root'
MYSQL_PASSWORD = '123456'
MYSQL_DB = 'mytestdb'

engine = create_engine('mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8'
                           % (MYSQL_USER, MYSQL_PASSWORD, MYSQL_HOST, MYSQL_PORT, MYSQL_DB))

sql = 'SELECT * FROM students'

df = pd.read_sql(sql, engine)

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
print(df)

20221223234701

加上pd.set_option这两行的原因是:

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

因为我们的表格中有中文,中文占用的字符和英文、数字占用的字符不一样,因此需要调用pd.set_option()使表格对齐显示。如果你是使用 Jupyter 来运行代码的,Jupyter 会自动渲染出一个表格,则无需这个设置。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hubing_hust/article/details/128425478

智能推荐

泰克Tektronix THDP0100高压差分探头-程序员宅基地

文章浏览阅读45次。泰克THDP0100高压差分探头Tektronix提供了广泛的高压探测解决方案,使用户能够安全、准确地进行浮动测量。高达6000 V的差速器(DC+PK AC)多2300 V通用(RMS)功率变换器设计与使用。安全高压探头解决方案。

使用uiautomator2自动化测试app(三)------实战篇_uiautomator2创建虚拟机-程序员宅基地

文章浏览阅读1.4k次。这里我主要会介绍怎么自动的化操控模拟器和一些其它的测试.1. 博主使用的是雷电模拟器,其它模拟器不适用此方法雷电模拟器接口:http://www.ldmnq.com/bbs/thread-30-1-1.html这里面是介绍了雷电模拟器调试接口的一些命令,需动手在cmd上先行操作!2. 新建一个.py文件,开始编写脚本这里主要实现了:2.1 创建模拟器2.2 修..._uiautomator2创建虚拟机

microk8s的registry私有镜像库

【代码】microk8s的registry私有镜像库。

开源项目,毕业设计_本科毕业设计拿别人的开源代码修改-程序员宅基地

文章浏览阅读1.5w次,点赞35次,收藏385次。自己在网上找的开源项目,比较好分享给大家热门开源项目(包含小四轴、智能手环、光立方、智能车、防丢器等项目)号外!号外!(搞四轴,有这套就足够了!)科研级别的小四轴STM32F4芯片支持WIFI且android手机控制自适应控制就是牛掰!该飞机面向有科研和强烈学习意向的小伙伴们使用,如果只是想玩的话你肯定不会喜欢这套四轴的,主要设计思想是提供一个高性能的控制和姿态算法验证平台,因此..._本科毕业设计拿别人的开源代码修改

Java快速开发框架_若依——Ruoyi添加自己的业务模块_ruoyi java17-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏26次。QQ 1274510382Wechat JNZ_aming商业联盟 QQ群538250800技术搞事 QQ群599020441解决方案 QQ群152889761加入我们 QQ群649347320共享学习 QQ群674240731纪年科技aming网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/安全项目:态势感.._ruoyi java17

CISCO 交换机配置 Web浏览器的方式-程序员宅基地

文章浏览阅读9k次,点赞2次,收藏3次。 当利用Console口为交换机设置好IP地址信息并启用HTTP服务后,即可通过支持JAVA的Web浏览器访问交换机,并可通过Web通过浏览器修 改交换机的各种参数并对交换机进行管理。事实上,通过Web界面,可以对交换机的许多重要参数进行修改和设置,并可实时查看交换机的运行状态。不过在利用 Web浏览器访问交换机之前,应当确认已经做好以下准备工作:·在用于管理的计算机中安装T..._思科交换机2960s有web配置吗

随便推点

用maven命令将jar包导入本地仓库_mavend导入jar包命令-程序员宅基地

文章浏览阅读2.8k次。1、将jar包放在D盘根目录下D:\ojdbc6.jar2、 _mavend导入jar包命令

常量与十六进制数0x7f或0x3f做&(与)运算含义-程序员宅基地

文章浏览阅读2.5w次,点赞13次,收藏31次。做个复习。十六进制数 [0~10 A~F]0x7f对应的二进制数及十进制数为:0111 1111 = 2^7 = 1280x3f对应的二进制数及十进制数为:0011 1111 = 2^6 = 640x7f与常量做与运算实质是保留常量(转换为二进制形式)的后7位数,既取值区间为[0,128]比如,0x7f & 256 0111 1111 -------- 1..._0x7f

Python爬虫绕过登录的小技巧_python 爬虫 跳过会员限制-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏17次。前言很多时候我们做 Python 爬虫时或者自动化测试时需要用到 selenium 库,我们经常会卡在登录的时候,登录验证码是最头疼的事情,特别是如今的文字验证码和图形验证码。文字和图形验证码还加了干扰线,本文就来讲讲怎么绕过登录页面。登录页面的验证,比如以下的图形验证码。还有我们基本都看过的 12306 的图形验证码。绕过登录方法绕过登录基本有两种方..._python 爬虫 跳过会员限制

安装 GMP、NTL、CTMalloc ,编译 OpenFHE_openfhe安装-程序员宅基地

文章浏览阅读565次。首先安装 GMP、NTL、CTMalloc 等等很有用的三方库,然后编译 OpenFHE 工具包。_openfhe安装

外包干了2个月,技术退步明显。。。。。

​先说一下自己的情况,本科生,17年通过校招进入武汉某软件公司,干了接近3年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了3年的功能测试,已经让我变得不思进取,谈了1年的女朋友也因为我的心态和工资和我分手了。于是,我决定要改变现状,冲击下大厂。​

Copilot Venture Studio創始合伙人楊林苑確認出席“邊緣智能2024 - AI開發者峰會”

隨著AI技術的迅猛發展,全球正逐步進入邊緣計算智能化與分布式AI深度融合的新時代,共同書寫著分布式智能創新應用的壯麗篇章。邊緣智能,作為融合邊緣計算和智能技術的新興領域,正逐漸成為推動AI發展的關鍵力量。借助分布式和去中心化的架構,邊緣智能旨在提供更加高效、安全和靈活的AI解決方案。為進一步推動邊緣智能技術的發展,分享全球最新的研究成果和產業趨勢,我們決定於5月9日在香港數碼港舉辦“邊緣智能2024 - AI開發者峰會”。我們非常榮幸地確認,Copilot Venture Studio創始合伙人楊林苑將出席