Pandas读取Mysql中的表

创建MySQL引擎

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn')

以默认方式读取所有的列到DF中

with engine.connect() as conn, conn.begin():
    data = pd.read_sql_table('data_col1_col2', con=conn)
data.head()

第一个参数为数据库中的表名,第二个参数为连接,也可以直接给engine。

指定某列为index,指定读取的列

with engine.connect() as con, con.begin():
    data = pd.read_sql_table('data_col1_col2', con=con, index_col='index', columns=['col1', 'col2'])
data.head()

通过index_col=参数指定列'index'为DF的index,通过columns=(列表类型)指定读取表的子集。

将某列解析为Date类型

pd.read_sql_table('data_col1_col2', con=engine, parse_dates=['col1']).head()

通过parse_dates=(列表类型)指定某几个列(如整型、字符串型的列)为Date类型,pandas会自动解析,默认的格式为(1970-01-01 00:00:00)。
同时,也可指定解析的字符串格式,如下所示:

# pd.read_sql_table('data_col1_col2', engine, parse_dates={'col1': '%Y-%m-%d'})
pd.read_sql_table('data_col1_col2', engine, parse_dates={'col1': {'format': '%Y-%m-%d %H:%M:%S'}}).head()

Pandas读取表格就这么容易。

上一篇:价值2000元的Java学习资源泄露,MySQL进阶,秒变大神


下一篇:MYSQL 多行转列、多列合并为JSON