Pandas读取MySQL数据到DataFrame的方法

  • Post category:Python

当需要将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中的数据进行处理和分析。例如,对数据进行清洗,去掉空值和重复数据,或者对数据进行可视化分析等等。