• Python可视化数据分析09、Pandas_MySQL读写


    Python可视化数据分析09、Pandas_MySQL读写

    📋前言📋

    💝博客:【红目香薰的博客_CSDN博客-计算机理论,2022年蓝桥杯,MySQL领域博主】💝

    ✍本文由在下【红目香薰】原创,首发于CSDN✍

    🤗2022年最大愿望:【服务百万技术人次】🤗

    💝Python初始环境地址:【Python可视化数据分析01、python环境搭建】💝 


    环境需求

    环境:win10

    开发工具:PyCharm Community Edition 2021.2

    数据库:MySQL5.6

    目录

    Python可视化数据分析09、Pandas_MySQL读写

    📋前言📋

    环境需求

    前言

    前置环境

    基础操作

    MySQL增删改

    MySQL读取操作


    前言

    在Python中,最有名的ORM框架是SQLAlchemy。使用SQLAlchemy写入数据到数据库中的步骤如下:
    导入SQLAlchemy模块的create_engine()函数和pandas()函数
    创建引擎,其中传入的字符串格式为:数据库类型+Python连接mysql的库名://用户名:密码@IP地址:端口号/数据库名
    使用Pandas下的io.sql模块下的to_sql()函数将DataFrame对象中的数据保存到数据库中
    使用Pandas模块中的read_sql()函数读取数据库中的记录,并保存到DataFrame对象中

    前置环境

    pip3 install sqlalchemy

    pip3 install pymysql
    

    基础操作

    1、打开MySQL服务

    2、创建【mytest】数据库

    3、创建【user】表

    示例:

    1. import pandas as pd
    2. from sqlalchemy import create_engine # 引入create_engine方法
    3. df = pd.DataFrame({"id": [1, 2, 3], "name": ["雷静", "小凤", "春梦"], "age": ["21", "22", "20"]})
    4. conn = create_engine('mysql+pymysql://root:12345678@localhost:3306/mytest?charset=utf8')
    5. # 将df对象保存到数据库名为mytest的库,名称为user的数据库表中
    6. pd.io.sql.to_sql(df, 'user', conn, schema='mytest', if_exists='append')
    7. # # 执行“select * from words;”SQL语句读取数据库中的数据
    8. df1 = pd.read_sql('select * from user;', con=conn)
    9. print(df1)

    MySQL增删改

    1. import pandas as pd
    2. from sqlalchemy import create_engine # 引入create_engine方法
    3. from sqlalchemy.orm import sessionmaker
    4. conn = create_engine('mysql+pymysql://root:12345678@localhost:3306/mytest?charset=utf8')
    5. # 修改-删除
    6. DB_Session = sessionmaker(bind=conn)
    7. session = DB_Session()
    8. # session.execute("insert into user values(3,0,'小龙女',22)")
    9. # session.execute("update user set name='晓凤' where id=2")
    10. session.execute("delete from user where id=4")
    11. session.commit()
    12. # # 执行“select * from words;”SQL语句读取数据库中的数据
    13. df = pd.read_sql('select * from user;', con=conn)
    14. print(df)

    MySQL读取操作

    1. import pandas as pd
    2. from sqlalchemy import create_engine # 引入create_engine方法
    3. conn = create_engine('mysql+pymysql://root:12345678@localhost:3306/mytest?charset=utf8')
    4. # # 执行“select * from words;”SQL语句读取数据库中的数据
    5. df = pd.read_sql('select * from user;', con=conn)
    6. print(df)
    7. # 基础信息
    8. print(df.info)
    9. # 查看列名
    10. print(df.columns)
    11. # 查看各列数据类型
    12. print(df.dtypes)
    13. # 查看下标
    14. print(df.index)
    15. # 数据浏览前2条
    16. print(df.head(2))
    17. # 查看name到age列
    18. print(df.loc[:, "name":"age"])
    19. # 基本统计
    20. print("最大年龄:", df.age.max())
    21. print("平均年龄:", df.age.mean())
    22. # 查询
    23. print(df[df.name == "春梦"])
    24. # 排序·True正序False倒序
    25. print(df.sort_values(by=["age"], ascending=False))
    26. # 在第二列【下标是1】添加列
    27. df.insert(1, "sex", "女")
    28. print(df)
    29. # 在最后添加列
    30. df["introduce"] = "巾帼"
    31. print(df)
    32. # 删除某行
    33. df = df.drop(1)
    34. print(df)
    35. # 替换
    36. value = pd.Series([1, "女", "雷静静", 20, "大眼姑娘"], index=["id", "sex", "name", "age", "introduce"])
    37. df.loc[0] = value
    38. value = pd.Series([4, "女", "小龙女", 18, "冰山美人"], index=["id", "sex", "name", "age", "introduce"])
    39. df.loc[3] = value
    40. print(df)
    41. # 条数
    42. print(len(df))

       index  id name  age
    0      0   1   雷静   21
    1      1   2   小凤   22
    2      2   3   春梦   20
    0      0   1   雷静   21
    1      1   2   小凤   22
    2      2   3   春梦   20>
    Index(['index', 'id', 'name', 'age'], dtype='object')
    index     int64
    id        int64
    name     object
    age       int64
    dtype: object
    RangeIndex(start=0, stop=3, step=1)
       index  id name  age
    0      0   1   雷静   21
    1      1   2   小凤   22
      name  age
    0   雷静   21
    1   小凤   22
    2   春梦   20
    最大年龄: 22
    平均年龄: 21.0
       index  id name  age
    2      2   3   春梦   20
       index  id name  age
    1      1   2   小凤   22
    0      0   1   雷静   21
    2      2   3   春梦   20
       index sex  id name  age
    0      0   女   1   雷静   21
    1      1   女   2   小凤   22
    2      2   女   3   春梦   20
       index sex  id name  age introduce
    0      0   女   1   雷静   21        巾帼
    1      1   女   2   小凤   22        巾帼
    2      2   女   3   春梦   20        巾帼
       index sex  id name  age introduce
    0      0   女   1   雷静   21        巾帼
    2      2   女   3   春梦   20        巾帼
       index sex  id name  age introduce
    0    NaN   女   1  雷静静   20      大眼姑娘
    2    2.0   女   3   春梦   20        巾帼
    3    NaN   女   4  小龙女   18      冰山美人
    3

    Process finished with exit code 0

  • 相关阅读:
    三级分类的数据表设计和构造API数据
    自己留着看的 python
    成功解决TypeError: only size-1 arrays can be converted to Python scalars
    力扣经典150题第四题:删除有序数组中的重复项 II
    最新!两步 永久禁止谷歌浏览器 Google Chrome 自动更新
    Python GIL锁
    【 java 常用类】java 比较器
    asp毕业设计——基于asp+access的学生管理系统设计与实现(毕业论文+程序源码)——学生管理系统
    top命令应用(查看进程实时动态信息)
    C专家编程 第2章 这不是Bug,而是语言特性 2.3 误做之过
  • 原文地址:https://blog.csdn.net/feng8403000/article/details/126022820