社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用python将pandas数据帧导入MS Access表

Nicole Ehrlich • 6 年前 • 1564 次点击  

我对python还很陌生,正在尝试为我的工作实现一些自动化。目前我正试图通过python用csv中的数据更新一个访问表。到目前为止,我已经将csv读取到一个pandas数据帧中,并试图在access中一次添加一行。这就是我目前为止所拥有的:

import pandas as pd
import pypyodbc
import glob

df = pd.read_csv("data.csv", header = 0, low_memory = False)
df = df[['Description','SN','Attribute_1','Attribute_2',\
    'Attribute_3','Attribute_4','Cost','Date']]

con = pypyodbc.connect('DRIVER={Microsoft Access Driver \ 
(*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;\
PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL=MS\
Access;DriverId=25;DefaultDir= \ 
C:/Users/testuser/Documents;DBQ=C:/Users/testuser/ \ 
Documents/Python/test.mdb;')

cursor = con.cursor()

for row in df.iterrows():
    cursor.execute("INSERT INTO test.table1([Description],[SN], 
      [Attribute_1], [Attribute_2],[[Attribute_3],[Attribute_4],\
      [Cost],[Date]) values (?,?,?,?,?,?,?,?)", (row[0], row[1] ,\
      row[2], row[3], row[4], row[5], row[6], row[7]))
    con.commit()
cursor.close()
con.close()

每次运行这个,我都会得到错误

IndexError: tuple index out of range

我已经找到了导致这种情况的典型原因,也就是说索引错误(即用python从1开始而不是从0开始),并确保我从0开始。

我还查看了所有我能想到的关于cursor.execute命令如何工作的文档,但是仍然很困惑,不确定我是否有正确的语句语法。任何帮助都将不胜感激!

样本数据:

Description   SN      Attr_1    Attr_2  Attr_3  Attr_4  Cost    Date
type_a      12938475  shiney    black    hard     a     1.09   7/20/18
type_b      18293940  matt      silver   soft     b     0.56   7/20/2018
type_d      18283940  matt      gray     soft     c     0.78   7/16/2018
type_a      18944938  shiney    silver   medium   d     3.4    7/18/2018
type_a      17485003  matt      silver   hard     v     2.3    7/17/2018
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39122
 
1564 次点击  
文章 [ 2 ]  |  最新文章 6 年前