美文网首页
python: pd.io.sql.to_sql的用法

python: pd.io.sql.to_sql的用法

作者: luffynoonepiece | 来源:发表于2020-08-10 11:17 被阅读0次
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from sqlalchemy import create_engine
import pandas as pd
from sqlalchemy.types import NVARCHAR, Float, Integer, SmallInteger

'''
目的:使用create_engine与DataFrame进行快速建表
'''
# mysql+mysqldb://用户名:密码@localhost:端口/数据库名?编码)
df = pd.read_csv('./XXX.csv')

def mapping_df_types(df):
    dtypedict = {}
    for i, j in zip(df.columns, df.dtypes):
        if "object" in str(j):
            dtypedict.update({i: NVARCHAR(length=255)})
        if "float" in str(j):
            dtypedict.update({i: Float(precision=2, asdecimal=True)})
        if "int" in str(j):
            dtypedict.update({i: SmallInteger()})
    return dtypedict
dtypedict = mapping_df_types(df)
conn = create_engine('mysql+mysqldb://user:password@host:port/database?charset=utf8')

try:
    pd.io.sql.to_sql(df, 'tablename', con=conn, schema='database', if_exists='append', dtype=dtypedict, chunksize=100000)
    print('done')
except Exception as e:
    print(e)
可能遇到报错:ModuleNotFoundError: No module named 'MySQLdb'

解决办法

# 在导入模块处添加语句
import pymysql
pymysql.install_as_MySQLdb()
蟹蟹.jpg

相关文章

网友评论

      本文标题:python: pd.io.sql.to_sql的用法

      本文链接:https://www.haomeiwen.com/subject/yogddktx.html