安装准备(可以不用看)
同学们在进行数据分析、数据处理时经常会使用pandas来储存结构化数据。我们在数据处理中会出现各种的过程文件或最终文件,虽然pandas给我们提供了非常多的输出结口,比如csv文件、xlsx文件。但在软件开发过程中db始终是主流,这里来简单介绍一下pandas与主流db mysql交互。
1. pymysql
2. sqlalchemy
1、导入dataframe数据到mysql
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://use:pwd@localhost:3306/test?charset=utf8")
df.to_sql("table", engine, schema="test", if_exists='replace', index=True,
chunksize=None, dtype=None)
use:就是你的用户名
pwd:就是你的用户密码
localhost:如果是本地就是localhost,如果是远程则为对应的ip
3306:对应的端口
test:要进行操作的数据库名
table:要进行操作的表
schema:同上,对应的数据库名
if_exists(
fail(添加):如果表存在,则不进行操作
replace(覆盖):如果表存在就删除表,重新生成,插入数据
append(更新):如果表存在就插入数据,不存在就直接生成表
)
index:是否需要索引,视情况而定
chunksize:对数据量过大的dataframe进行分块处理,百万以下的数据一般不用处理。
dtype:指定的数据类型
df:要导入进MySQL的dataframe对象
2、从mysql中导出dataframe对象
注意:从mysql导出dataframe对象,不一定要求数据表存的是我们导入的dataframe对象,而是任何一张表都可以作为dataframe对象被我们导出进行操作。
conn = pymysql.connect(host="localhost",port=3306,user="use",
password="pwd",database="test",charset="utf8")
sql = "select * from table;"
df = pd.read_sql(sql,conn)
host:数据库路径,本地为localhost
port:端口一般为3306
user:用户名
pssword:密码
database:操作的数据库名
table:对应的表名
df即为从表中生成的dataframe对象