当需要将MySQL数据库表中的数据导入到DataFrame中进行数据处理和分析时,可以使用Pandas库提供的read_sql()和read_sql_table()方法来读取MySQL数据库中的数据。
读取MySQL数据库表中的数据到DataFrame中
1.使用read_sql方法
read_sql()方法可以将任何SQLAlchemy已经支持的SQL语句执行并返回结果数据到DataFrame中。
import pandas as pd
from sqlalchemy import create_engine
# 连接数据库
engine = create_engine('mysql+pymysql://username:password@host:port/database_name')
# 执行SQL语句并返回结果到DataFrame中
df = pd.read_sql("SELECT * FROM table_name", con=engine)
# 输出DataFrame
print(df)
其中,参数说明:
- sql: 要执行的SQL语句。
- con: 数据库连接,可以由create_engine()方法创建。
- index_col: 指定DataFrame的行索引列。
- parse_dates: 自动解析日期列。
2.使用read_sql_table方法
read_sql_table()方法可以直接将MySQL数据库中的数据表导入到DataFrame中。
import pandas as pd
from sqlalchemy import create_engine
# 连接数据库
engine = create_engine('mysql+pymysql://username:password@host:port/database_name')
# 读取数据表到DataFrame中
df = pd.read_sql_table("table_name", con=engine)
# 输出DataFrame
print(df)
其中,参数说明:
- table_name: 要导入的MySQL数据表名称。
- con: 数据库连接,可以由create_engine()方法创建。
- index_col: 指定DataFrame的行索引列。
- parse_dates: 自动解析日期列。
示例说明
以下示例代码是从MYSQL数据库中的名为userinfo的数据表读取数据,并将其转换成DataFrame格式进行展示。
import pandas as pd
from sqlalchemy import create_engine
# 连接数据库
engine = create_engine('mysql+pymysql://username:password@host:port/database_name')
# 读取数据表到DataFrame中
df = pd.read_sql_table("userinfo", con=engine)
# 输出DataFrame
print(df)
另一个示例代码,从MYSQL数据库中执行一个SQL语句,获取数据,转换成DataFrame格式进行展示。
import pandas as pd
from sqlalchemy import create_engine
# 连接数据库
engine = create_engine('mysql+pymysql://username:password@host:port/database_name')
# 执行SQL语句并返回结果到DataFrame中
df = pd.read_sql("SELECT * FROM userinfo WHERE age > 20", con=engine)
# 输出DataFrame
print(df)
另外,还需要根据自身的需求,对DataFrame中的数据进行处理和分析。例如,对数据进行清洗,去掉空值和重复数据,或者对数据进行可视化分析等等。