Pandas操作MySQL的方法详解
1. 安装依赖
在使用Pandas操作MySQL之前,需要安装两个依赖库:pandas和pymysql。可以使用以下命令进行安装:
pip install pandas
pip install pymysql
2. 建立MySQL连接
在使用Pandas操作MySQL之前,首先需要建立MySQL连接。可以使用pymysql库来实现。示例代码如下:
import pymysql
# 建立连接
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
db='test'
)
# 关闭连接
conn.close()
3. 读取MySQL数据
在建立好MySQL连接之后,可以使用Pandas的read_sql函数来读取MySQL数据。示例代码如下:
import pandas as pd
import pymysql
# 建立连接
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
db='test'
)
# 读取MySQL数据
df = pd.read_sql('SELECT * FROM my_table', conn)
# 关闭连接
conn.close()
4. 写入MySQL数据
使用Pandas写入MySQL数据需要先建立连接,然后使用to_sql函数来实现。示例代码如下:
import pandas as pd
import pymysql
# 建立连接
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
db='test'
)
# 构造数据
data = {'id': [1, 2, 3], 'name': ['Tom', 'Jerry', 'Mike']}
df = pd.DataFrame(data)
# 写入MySQL
df.to_sql('my_table', conn, index=False, if_exists='replace')
# 关闭连接
conn.close()
说明:
index=False
表示不将行索引写入MySQL中。if_exists='replace'
表示如果数据库中已经有名为my_table
的表,那么就先删除该表,再写入新的表。
5. 示例说明
示例1:读取MySQL数据并进行数据预处理
import pandas as pd
import pymysql
# 建立连接
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
db='test'
)
# 读取MySQL数据
df = pd.read_sql('SELECT * FROM my_table', conn)
# 数据预处理
df['age'] = 2022 - df['birth_year']
df = df[df['age'] > 20]
# 关闭连接
conn.close()
说明:
这个示例代码中,读取了MySQL中名为my_table
的表中所有数据,并对数据进行处理,新增一列age
表示当前年龄,并且筛选出年龄大于20岁的数据。
示例2:将pandas中的数据写入MySQL
import pandas as pd
import pymysql
# 建立连接
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
db='test'
)
# 构造数据
data = {'id': [1, 2, 3], 'name': ['Tom', 'Jerry', 'Mike']}
df = pd.DataFrame(data)
# 写入MySQL
df.to_sql('my_table', conn, index=False, if_exists='replace')
# 关闭连接
conn.close()
说明:
这个示例代码中,建立了一个包含id和name两列的DataFrame对象,并把该对象写入MySQL名为my_table
的表中。每次运行该代码,原来的my_table
表会被删除,重新建立新的表。