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

举报
红目香薰 发表于 2022/07/29 10:36:06 2022/07/29
【摘要】 ​ ​编辑Python可视化数据分析09、Pandas_MySQL读写📋前言📋💝博客:【红目香薰的博客_CSDN博客-计算机理论,2022年蓝桥杯,MySQL领域博主】💝✍本文由在下【红目香薰】原创,首发于CSDN✍🤗2022年最大愿望:【服务百万技术人次】🤗💝Python初始环境地址:【Python可视化数据分析01、python环境搭建】💝 环境需求环境:win10开发工...

 编辑

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】表

编辑

示例:

import pandas as pd
from sqlalchemy import create_engine  # 引入create_engine方法

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

编辑

MySQL增删改

import pandas as pd
from sqlalchemy import create_engine  # 引入create_engine方法
from sqlalchemy.orm import sessionmaker

conn = create_engine('mysql+pymysql://root:12345678@localhost:3306/mytest?charset=utf8')
# 修改-删除
DB_Session = sessionmaker(bind=conn)
session = DB_Session()
# session.execute("insert into user values(3,0,'小龙女',22)")
# session.execute("update user set name='晓凤' where id=2")
session.execute("delete from user where id=4")
session.commit()
# # 执行“select * from words;”SQL语句读取数据库中的数据
df = pd.read_sql('select * from user;', con=conn)
print(df)

MySQL读取操作

import pandas as pd
from sqlalchemy import create_engine  # 引入create_engine方法

conn = create_engine('mysql+pymysql://root:12345678@localhost:3306/mytest?charset=utf8')
# # 执行“select * from words;”SQL语句读取数据库中的数据
df = pd.read_sql('select * from user;', con=conn)
print(df)
#  基础信息
print(df.info)
# 查看列名
print(df.columns)
# 查看各列数据类型
print(df.dtypes)
# 查看下标
print(df.index)
#  数据浏览前2条
print(df.head(2))
#  查看name到age列
print(df.loc[:, "name":"age"])
#  基本统计
print("最大年龄:", df.age.max())
print("平均年龄:", df.age.mean())
# 查询
print(df[df.name == "春梦"])
# 排序·True正序False倒序
print(df.sort_values(by=["age"], ascending=False))
# 在第二列【下标是1】添加列
df.insert(1, "sex", "女")
print(df)
# 在最后添加列
df["introduce"] = "巾帼"
print(df)
# 删除某行
df = df.drop(1)
print(df)
# 替换
value = pd.Series([1, "女", "雷静静", 20, "大眼姑娘"], index=["id", "sex", "name", "age", "introduce"])
df.loc[0] = value
value = pd.Series([4, "女", "小龙女", 18, "冰山美人"], index=["id", "sex", "name", "age", "introduce"])
df.loc[3] = value
print(df)
# 条数
print(len(df))

   index  id name  age
0      0   1   雷静   21
1      1   2   小凤   22
2      2   3   春梦   20
<bound method DataFrame.info of    index  id name  age
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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。