如何将 Pandas datetime64[ns] 值填充到 MS Access
How to populate Pandas datetime64[ns] values into MS Access
我有几个具有 Order_date 列的 DataFrame。在所有 DataFrame 中,Order_date 列的数据类型都是 datetime64[ns]。请注意,这些列填充了有效日期和 NaT 值。
打印时 Order_date 列的示例:
Order_date
1 2017-01-01
2 NaT
3 NaT
4 NaT
5 2017-10-22
我正在尝试通过 pyodbc.
将这些数据帧列填充到 MS Access table
我收到以下错误:
pyodbc.DataError: ('22008', '[22008] [Microsoft][ODBC Microsoft Access Driver]日期时间字段溢出 (SQLExecDirectW)')
经过研究,我注意到 MS Access 2016 的 Date/Time 数据类型对应于 ODBC 数据类型 SQL_TIMESTAMP。
所以,我尝试了以下方法将 datetime64[ns] 转换为 SQL_TIMESTAMP:
import datetime
cursor.execute("SQL statement...VALUES(?)", datetime.datetime(order_date))
但是,我得到这个错误:TypeError:需要一个整数(得到类型时间戳)。
如何才能将 Pandas/Numpy datetime64[ns] 值成功填充到 MS Access table 中?如何将 datetime64[ns] 值转换为 SQL_TIMESTAMP?
IIUC - 你快到了。您只需将 pd.to_datetime
返回的系列分配回列:
df['Order_date'] = pd.to_datetime(df['Order_date'], errors='coerce')
我有几个具有 Order_date 列的 DataFrame。在所有 DataFrame 中,Order_date 列的数据类型都是 datetime64[ns]。请注意,这些列填充了有效日期和 NaT 值。
打印时 Order_date 列的示例:
Order_date
1 2017-01-01
2 NaT
3 NaT
4 NaT
5 2017-10-22
我正在尝试通过 pyodbc.
将这些数据帧列填充到 MS Access table我收到以下错误:
pyodbc.DataError: ('22008', '[22008] [Microsoft][ODBC Microsoft Access Driver]日期时间字段溢出 (SQLExecDirectW)')
经过研究,我注意到 MS Access 2016 的 Date/Time 数据类型对应于 ODBC 数据类型 SQL_TIMESTAMP。
所以,我尝试了以下方法将 datetime64[ns] 转换为 SQL_TIMESTAMP:
import datetime
cursor.execute("SQL statement...VALUES(?)", datetime.datetime(order_date))
但是,我得到这个错误:TypeError:需要一个整数(得到类型时间戳)。
如何才能将 Pandas/Numpy datetime64[ns] 值成功填充到 MS Access table 中?如何将 datetime64[ns] 值转换为 SQL_TIMESTAMP?
IIUC - 你快到了。您只需将 pd.to_datetime
返回的系列分配回列:
df['Order_date'] = pd.to_datetime(df['Order_date'], errors='coerce')