我正在尝试将数据帧插入 sql 表中,但收到以下错误
编程错误:(pyodbc.编程错误(("描述期间未知对象类型 numpy.ndarray","HY000"(
对于以下代码
merged.to_sql('pmg.cwc.EmSignals1', engine, chunksize=1000,
if_exists='replace',
index=False,
dtype ={'monthenddate': sqlalchemy.types.NVARCHAR(length=20),
'lastweekday': sqlalchemy.types.NVARCHAR(length=20),
'item': sqlalchemy.types.NVARCHAR(length=20),
'sols': sqlalchemy.types.NVARCHAR(length=20),
'value': sqlalchemy.types.NVARCHAR(length=20)})
这是数据帧的 .head
月结束日期 上个工作日项目 溶胶值
0 1999-12-311999-12-31 价值 2W063W1 -0.870225
1 1999-12-311999-12-31 W1YBRK4 0.078154
2 1999-12-311999-12-31 价值 X16W902 -0.072731
3 1999-12-311999-12-31 价值 2X45X4W 1.278582
4 1999-12-311999-12-31 价值 23X1XWX 0.293649
我已经尝试了很多,但无法找出问题的原因。
我假设出于某种原因,你们中的一个列包含 numpy 数组。您可以使用 print(merged.info())
进行验证。
如果是这种情况,请检查将数据分配给数据帧的语句。
编辑:print(merged.info())
显示了几object
列,您仍然不知道其中哪些可能是 numpy 数组。尝试以下代码进行更深入的挖掘:
for el in merged.iloc[0, :]:
print('Checking: {:s}.'.format(str(el)))
print(isinstance(el, np.generic))
try:
print(el.shape)
print('Is a NumPy array.')
except:
print('Is not a NumPy array.')
finally:
print('-----')