# 连接mysql
import pymysql
import pandas as pd
conn = pymysql.connect(
host='10.0.*.*' , # 要连接的主机地址
user='test', # 用于登录的数据库用户
password='123456', # 密码
database='riskdata', # 要连接的数据库
port=3306, # 端口,一般为 3306
charset='', # 字符编码
use_unicode=None, # 是否使用 unicode 编码
connect_timeout=10 # 连接超时时间,(default: 10, min: 1, max: 31536000)
)
# 读取mysql数据为dataframe
pd.read_sql(
sql, # sql语句
con, # 连接sql数据库的engine,一般可以用SQLalchemy或者pymysql之类的包建立
index_col=None, # 选择某一列作为index
coerce_float=True, # 尝试将非字符串,非数字对象(例如decimal.Decimal)的值转换为浮点,这对于SQL结果集很有用
params=None,
parse_dates=None, # 将某一列日期型字符串转换为datetime型数据
columns=None, # 要选取的列。一般没啥用,因为在sql命令里面一般就指定要选择的列了
chunksize=None # 如果提供了一个整数值,那么就会返回一个generator,每次输出的行数就是提供的值的大小。
)
from sqlalchemy import create_engine
engine = create_engine(
"mysql+pymysql://root2:root123@192.168.*.*:3306/qibei?charset=utf8")
df_test = pd.DataFrame({'hah':[5,586],'ia':[1000,88558]})
df_test.to_sql(name = 'table_test',con =engine ,if_exists='append', index=False)
pd.read_sql(sql = 'select * from table_test', con = engine)