1 需要安装的包
pandas,
mysql-python
sqlalchemy
可以在Anaconda界面下载,或者通过pip install 来安装
2创建MySQL引擎
engine = create_engine("mysql+mysqldb://user:pwd@ip/databasename",encoding='utf8')
user:mysql用户名
pwd:mysql 密码
databasename:连接的mysql数据库名字
ip:mysql数据ip
3 Pandas保存到数据库
对应表结构设计dataframe,一定要保证与数据库表结构中的名字对应,否则会报错。
调用dataframe.to_sql()方法进行保存。
重要参数:
name:数据表名称
conn:数据库连接引擎,对应于2中所创建的msql引擎。
if_exists:已存在表的处理方式。append表示如果存在name的表,则将数据添加。
Index:是否把dataframe中的索引写入到数据库。一般设置False
df.to_sql('testpd',con=engine, if_exists='append', index=False)
4 Example首先在mysql的ybxxfw数据库中创建了一个名字为testpd的表,
该表有两个字段,testcol和dd。类型为字符串和日期。
建表语句:
DROP TABLE IF EXISTS `testpd`;
CREATE TABLE `testpd` (
`testcol` varchar(255) DEFAULT NULL,
`dd` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2)相关代码
#encoding=utf8
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("mysql+mysqldb://root:123456@localhost/ybxxfw",encoding='utf8')
mapd={'testcol':["date"],'dd':['2017/01/01']}
df=pd.DataFrame(mapd)
df.to_sql('testpd',con=engine, if_exists='append', index=False)
Note:日期可以用格式化的字符串传入,不必传入python日期类型。
3)执行过后查看数据库
数据已经写入到数据库。