You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Spyder IDE中的DataFrame写入MS Access数据库表

将DataFrame写入MS Access数据库表的解决方案

方法一:使用pandas的to_sql方法(推荐)

这是最简洁高效的方式,pandas原生支持将DataFrame直接写入数据库表,无需手动构造INSERT语句。

完整代码示例:

import pandas as pd
import pyodbc
from sqlalchemy import create_engine

# 读取Excel文件到DataFrame
xlsx_path = r'F:\Kevin\CPD_Night\ALC_2022068_06282024.xlsx'
df_ALC = pd.read_excel(xlsx_path)

# 构建Access数据库连接引擎
conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=F:\Kevin\CPD_Night\ALC_Testing.accdb;'
)
engine = create_engine(f"access+pyodbc:///?odbc_connect={conn_str}")

# 将指定列写入Access表
df_ALC[['dateofnotice', 'provnbr']].to_sql(
    name='tblALC_tempdata',
    con=engine,
    if_exists='append',  # 可选:'fail'(表存在则报错)、'replace'(覆盖表)、'append'(追加数据)
    index=False  # 不将DataFrame索引写入数据库表
)

# 验证写入结果
with pyodbc.connect(conn_str) as conn:
    cur = conn.cursor()
    cur.execute('SELECT * FROM tblALC_tempdata')
    for row in cur.fetchall():
        print(row)

注意事项:

  • 需提前安装依赖包:pip install sqlalchemy pyodbc
  • 确保DataFrame的列名与Access表的字段名完全匹配
  • if_exists参数根据需求选择,避免误删已有数据

方法二:使用参数化INSERT语句(手动批量写入)

如果需要对每行数据做自定义处理,可采用参数化查询循环写入,同时避免SQL注入风险。

完整代码示例:

import pandas as pd
import pyodbc

# 读取Excel文件到DataFrame
xlsx_path = r'F:\Kevin\CPD_Night\ALC_2022068_06282024.xlsx'
df_ALC = pd.read_excel(xlsx_path)

# 连接Access数据库
conn_str = r'Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=F:\Kevin\CPD_Night\ALC_Testing.accdb;'
conn = pyodbc.connect(conn_str)
cur = conn.cursor()

# 构造参数化INSERT语句(?为占位符)
sql = "INSERT INTO tblALC_tempdata (dateofnotice, provnbr) VALUES (?, ?)"

# 循环写入每行数据
for _, row in df_ALC.iterrows():
    cur.execute(sql, (row['dateofnotice'], row['provnbr']))

# 提交事务并关闭连接
conn.commit()
cur.close()
conn.close()

# 验证写入结果
conn = pyodbc.connect(conn_str)
cur = conn.cursor()
cur.execute('SELECT * FROM tblALC_tempdata')
for row in cur.fetchall():
    print(row)
cur.close()
conn.close()

优势:

  • 可在写入前对单条数据做清洗、转换等操作
  • 参数化查询比字符串拼接更安全,避免SQL注入问题

内容的提问来源于stack exchange,提问作者mekcox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:12:38