Python DataFrame对象如何使用cursor.executemany方法
时间: 2024-05-15 18:13:42 浏览: 149
`cursor.executemany` 方法可以用于批量插入数据到数据库中,可以提高数据插入的效率。使用 DataFrame 对象和 `cursor.executemany` 方法可以将数据批量插入到数据库中。
下面是一个例子,假设我们有一个名为 `df` 的 DataFrame 对象需要插入到数据库表中:
```python
import pymysql
import pandas as pd
# 创建 MySQL 连接
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='password',
db='test_db',
charset='utf8mb4'
)
# 创建 DataFrame 对象
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [24, 25, 26],
'gender': ['F', 'M', 'M']
})
# 创建游标对象
cursor = conn.cursor()
# 定义 SQL 插入语句
sql = "INSERT INTO person(name, age, gender) VALUES (%s, %s, %s)"
# 使用 cursor.executemany 方法批量插入数据
cursor.executemany(sql, df.values.tolist())
# 提交事务
conn.commit()
# 关闭游标和连接
cursor.close()
conn.close()
```
在上面的代码中,我们首先创建了一个名为 `df` 的 DataFrame 对象,然后创建了一个 MySQL 连接和游标对象。接着,我们定义了一个 SQL 插入语句并使用 `cursor.executemany` 方法批量插入数据。最后,我们提交了事务并关闭了游标和连接。
需要注意的是,`cursor.executemany` 方法的第二个参数需要是一个嵌套列表,即每个子列表表示一条数据记录。因此,在上面的代码中,我们使用 `df.values.tolist()` 将 DataFrame 对象转换为嵌套列表。
阅读全文