to_sql错误:描述期间对象类型未知 numpy.ndarray



我正在尝试将数据帧插入 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-31

1999-12-31 价值 2W063W1 -0.870225

1 1999-12-31

1999-12-31 W1YBRK4 0.078154

2 1999-12-31

1999-12-31 价值 X16W902 -0.072731

3 1999-12-31

1999-12-31 价值 2X45X4W 1.278582

4 1999-12-31

1999-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('-----')

最新更新