Python连接mysql数据库极简教程(pandas)

讨论 多洛莉丝
Lv2 初级炼丹师
发布在 Pandas   2200   0
讨论 多洛莉丝   2200   0

    在网上找了若干篇教程,一顿操作猛如虎之后发现,大多数教程推荐的 MySQLdb好像不行啊,是python 2.x的...这年头不该默认主流python 3.x了嘛?

    又针对python 3.x检索了一番,找到了PyMySQL(参见菜鸟教程-PyMySQL驱动)。能用是能用,但还是有点不太对啊,这查询出来保存为字符串了,要弄成结构化的还要写for循环...这操作未免也太不python了不是?

    所以用"pandas+MySQL"作为关键词第三遍搜索,终于找到了优雅的答案,现整理出来和大家分享。全文分为python连接、读取、写入数据库三部分。

    Part 1. Python连接数据库

    首先,在cmd里安装pandas、sqlalchemy、pymysql三个包(pymysql也可用mysqlconnector替换,两者都可以连接MySQL数据库):

    pip install pandas
    pip install sqlalchemy
    pip install pymysql

    初始化数据库连接:

    import pandas as pd
    from sqlalchemy import create_engine
    
    # 初始化数据库连接
    # 按实际情况依次填写MySQL的用户名、密码、IP地址、端口、数据库名
    engine = create_engine('mysql+pymysql://root:12345678@localhost:3306/testdb')
    
    # 如果觉得上方代码不够优雅也可以按下面的格式填写
    # engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format('root', '12345678', 'localhost', '3306', 'testdb'))

    这里“mysql+pymysql://”是指明通过pymysql这个包来连接数据库,也可以使用mysqlconnector;如果是python2.x可以替换为MySQLdb来连接。MySQL的IP地址和端口号,默认为localhost:3306。

    Part 2. Python读取数据库

    写好查询语句并执行,将结果存入数据框DataFrame:

    # MySQL导入DataFrame
    # 填写自己所需的SQL语句,可以是复杂的查询语句
    sql_query = 'select * from product;'
    # 使用pandas的read_sql_query函数执行SQL语句,并存入DataFrame
    df_read = pd.read_sql_query(sql_query, engine)
    print(df_read)

    查看该数据框df_read:

    Part 3. Python写入数据库

    # DataFrame写入MySQL
    # 新建DataFrame
    df_write = pd.DataFrame({'id': [10, 27, 34, 46], 'name': ['张三', '李四', '王五', '赵六'], 'score': [80, 75, 56, 99]})
    # 将df储存为MySQL中的表,不储存index列
    df_write.to_sql('testdf', engine, index=False)

    在MySQL中查看该表:

    Reference

    1. https://blog.csdn.net/lzw2016/article/details/84720433
    2. https://www.jianshu.com/p/238a13995b2b
    3. https://www.runoob.com/python3/python3-mysql.html


    版权声明:作者保留权利,不代表意本站立场。如需转载请联系本站以及作者。

    参与讨论

    回复《 Python连接mysql数据库极简教程(pandas)

    EditorJs 编辑器

    沙发,很寂寞~
    反馈
    to-top--btn