【发布时间】:2017-12-06 23:10:22
【问题描述】:
我正在尝试将 Pandas Dataframe 的值填充到 MS Access 表中。我正在使用以下 Pandas 内置 DF.iterrows() 遍历 DataFrame 的每一行并将每一行插入 Access 表中。
for index,row in df.iterrows():
print(repr(row['Vote_date'])) #Using iterrows() temporarily converts datetime64[ns] values into Timestamps
row['Vote_date'] = row['Vote_date'].to_pydatetime() #This converts all values in this column, except NaT values.
cursor.execute("INSERT INTO Vote(vote_date) VALUES(?)", row['Vote_date'])
当我运行此代码时,我收到以下错误:
pyodbc.DataError: ('22008', '[22008] [Microsoft][ODBC Microsoft Access Driver]Datetime field overflow (36) (SQLExecDirectW)')
Pandas Timestamps 值无法插入到 MS Access 表中。研究表明,我需要将列值转换为 Python datetime 值才能插入 Access DB。
我可以使用另一种迭代方法将 Python datetime 值成功插入 MS Access 吗?还要处理NaT 值吗?
【问题讨论】:
标签: python python-3.x pandas numpy ms-access-2016