Python使用Pandas读写MySQL数据库的完整指南
本文详解如何在Python中利用Pandas库高效读写MySQL数据库。通过结合pymysql和SQLAlchemy,实现从数据库读取数据生成DataFrame,以及将DataFrame写入数据库表的操作。包含完整的连接配置、查询及写入代码示例,适用于大数据处理场景。
要在Python中实现Pandas对MySQL数据库的读写操作,必须安装并配置三个核心库。
- Pandas
- SQLAlchemy
- PyMySQL
部分读者可能会疑惑,既然PyMySQL或SQLAlchemy能单独完成数据库交互,为何还要引入Pandas?这主要取决于应用场景。对于涉及大量数据处理的任务,使用Pandas进行数据库读写通常更加便捷高效。
1、使用read_sql_query读取MySQL数据
read_sql_query或read_sql方法均接受SQL语句作为参数,执行后返回DataFrame对象。这里简要说明:DataFrame是Pandas中的一种核心数据结构,其形态和功能类似于Excel表格,便于进行数据清洗和分析。
import pandas
from sqlalchemy import create_engine
class mysqlconn:
def __init__(self):
mysql_username = 'root'
mysql_password = '123456'
# 填写真实数库ip
mysql_ip = 'x.x.x.x'
port = 3306
db = 'work'
# 初始化数据库连接,使用pymysql库
self.engine = create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(mysql_username, mysql_password, mysql_ip, port,db))
# 查询mysql数据库
def query(self,sql):
df = pandas.read_sql_query(sql,self.engine)
# df = pandas.read_sql(sql,self.engine) 这种读取方式也可以
# 返回dateframe格式
return df
if __name__ =='__main__':
# 查询的 sql 语句
SQL = '''select * from working_time order by id desc '''
# 调用 mysqlconn 类的 query() 方法
df_data = mysqlconn().query(sql=SQL)
2、使用to_sql写入数据库
在使用to_sql方法将数据写入数据库之前,需先将待写入的数据转换为DataFrame格式。
import pandas
from sqlalchemy import create_engine
class mysqlconn:
def __init__(self):
mysql_username = 'root'
mysql_password = '123456'
# 填写真实数库ip
mysql_ip = 'mysql.mall.svc.test.local'
port = 3306
db = 'work'
# 初始化数据库连接,使用pymysql库
self.engine = create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(mysql_username, mysql_password, mysql_ip, port,db))
# 查询mysql数据库
def query(self,sql):
df = pandas.read_sql_query(sql,self.engine)
# df = pandas.read_sql(sql,self.engine)
# 返回dateframe格式
return df
# 写入mysql数据库
def to_sql(self,table,df):
# 第一个参数是表名
# if_exists:有三个值 fail、replace、append
# 1.fail:如果表存在,啥也不做
# 2.replace:如果表存在,删了表,再建立一个新表,把数据插入
# 3.append:如果表存在,把数据插入,如果表不存在创建一个表!!
# index 是否储存index列
df.to_sql(table, con=self.engine, if_exists='append', index=False)
if __name__ =='__main__':
# 创建 dateframe 对象
df = pandas.DataFrame([{'name':'小米','price':'3999','colour':'白色'},{'name':'华为','price':'4999','colour':'黑色'}])
# 调用 mysqlconn 类的 to_sql() 方法
mysqlconn().to_sql('phonetest',df)
插入数据库的具体数据示例如下:

以上即为Python基于Pandas读写MySQL数据库的详细内容,更多关于Python读写MySQL数据库的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













