pandas与mysql的连接使用操作(SQLAlchemy)

 

1.SQLAlchemy安装

其提供了SQL工具包及对象关系映射(ORM)工具,pip命令安装:

pip install sqlalchemy

2.连接数据库

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://root:study12345@localhost:3306/study_db')

3.查询

sql = 'select * from tb1;'
# read_sql_query的两个参数: sql语句, 数据库连接;得到的df是一个datafame对象
df = pd.read_sql_query(sql, engine)
print(df)

4.创建新的表,同时插入

# 新建pandas中的DataFrame, 只有id,num两列
df = pd.DataFrame({'id': [1, 2, 3, 4], 'num': [12, 34, 56, 89]})
# 将新建的DataFrame储存为MySQL中的数据表,不储存index列,表名为mydf,不存在会自己创建
df.to_sql(name='mydf', con=engine, index=False)
print('Read from and write to Mysql table successfully!')


'''
   id title author submission_date
0   1  java     蒋新      2016-05-06
Read from and write to Mysql table successfully!
'''

效果图:

pandas与mysql的连接使用操作(SQLAlchemy)_第1张图片


5.将CSV文件写入到MySQL中

1)csv文件

pandas与mysql的连接使用操作(SQLAlchemy)_第2张图片

2)pandas读取csv并写入book表

# 导入必要模块
import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://root:study12345@localhost:3306/study_db')

# 读取本地CSV文件
df = pd.read_csv("book.csv", sep=',')

# 将新建的DataFrame储存为MySQL中的数据表,不储存index列
df.to_sql('book', engine, index=False)

print("Write to MySQL successfully!")

3)自动创建并显示结果

pandas与mysql的连接使用操作(SQLAlchemy)_第3张图片

 

 

 

你可能感兴趣的:(pandas)