7、数据清洗之数据库文件读写
原创
©著作权归作者所有:来自51CTO博客作者sddzxcn的原创作品,请联系作者获取转载授权,否则将追究法律责任
前言:
#使用sqlalchemy建立连接
#需要知道数据库的相关参数,如数据库的IP地址、用户名和密码等
#通过pandas中read_sql函数读入,读取完以后就dataframe格式
#通过dataframe的to_sql方法保存
#sql='select' * from meal_order_info' #选择数据库中表名称
#df1=pd.read_sql(sql,conn)
#df.to_sql('testdf',con=conn,index=False,if_exists='replace')
数据库建立连接参数
conn=create_engine('mysql+pymysql://user:password@IP:3306/test01')
*root:用户名
*password:密码
*IP:服务器IP,本地电脑用localhost
*3306:端口号
*test01:数据库名称
df.to_sql(name,con=engine,if_exists='replace/append/fail',index=False)
*name:表名
*con:连接
*if-exists:表如果存在什么处理。三个选项append追加,replace代表删除原表,建立新表,fail代表什么都不干
*index=False:不插入索引index
实操演练:
import numpy as np
import pandas as pd
import pymysql
import sqlalchemy import creat_engine
conn=create_engine('mysql+pymysql://root:password@localhost:3306/test01')
sql='select * from meal_order_info'
df1=pd.read_sql(sql,conn)#建立连接
df1.head()
def query(table):
host='localhost'
user='root'
password=''
database='test01'
port=3306
conn=create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(user,password,host,port,database))#通过占位符访问
sql='select * from'+table
result=pd.read_sql(sql,con=conn)
return result
df2=query('你的数据库表名')
#数据保存
#excel文件保存到数据库中
import os
os.getcwd
os.chdir('f:\\1\\')
df=pd.read_csv('1.csv')
#报错机制
try:
df.to_sql('testdf',con=conn,index=False,if_exists='replace')
except:
print('error')