Pandas 基础 (19) - 操作数据库 (read_sql, to_sql)
安装两个包:
pip3 install PyMySQL
pip3 install sqlalchemy
连接 Mysql 数据库:
import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:root@localhost:3306/express')
这是连接 mysql 数据库的参数规则, 如果是其他数据库, 可参照 官网 下图这个部分
读
下面就可以从数据库读取数据了:
df = pd.read_sql_table('users', engine)
df
只想读取指定字段也可以:
df = pd.read_sql_table('users', engine, columns=['email', 'mobile'])
df
执行 sql 语句:
query = '''
SELECT nick_name, email from users where id < 5
'''
df = pd.read_sql_query(query, engine)
df
写
假如你有一份 csv 格式的文件, 想要导入数据库
先把它转成 dataframe 吧:
df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/21_sql/customers.csv')
df
输出:
把表头重命名, 要保证跟要插入的数据表的字段名一致, 否则是无法插入的:
df.rename(columns = {
'nick_name': 'name',
'Customer Phone': 'mobile',
}, inplace = True)
df
下面就是执行导入数据库的命令了. 第一个参数是指定要导入到哪个表中, 第二个参数是连接用的, 第三个参数是要去掉索引, 第四个参数是指如果数据库里已经有某个值了, 就 keep both, 这个参数值有几种不同的, 比如"覆盖"等.
df.to_sql(
name = 'admin_users',
con = engine,
index = False,
if_exists = 'append'
)
介绍最后一个函数 pd.read_sql(), 它是 read_sql_table() 和 read_sql_query() 的集合, 也就说它会根据传入的第一个参数自动判断是 table 还是 query:
df = pd.read_sql('admin_users', engine)
df
and:
query = '''
SELECT nick_name, email from users where id < 5
'''
df = pd.read_sql(query, engine)
df
以上就是 Pandas 对数据库的基本操作, 也是 Pandas 基础学习的最后一篇, 我要开始进军 Data Analysis. 耽误好久了, 人笨, 走得慢.......
本作品采用《CC 协议》,转载必须注明作者和本文链接