使用 pandas 数据帧将数据从 csv 加载到 table 时出错

Error while loading data from csv to table using pandas dataframe

我有 csv 文件,当我尝试使用 pandas 数据帧将 CSV 加载到 table 时出现错误,请帮助我

import pyodbc
import pandas as pd
df = pd.read_csv("C:\PYTHON\csv.csv")
conn = pyodbc.connect('Driver=ODBC Driver 17 for SQL Server;'
                      'Server=SIS10647\MSSQLSERVER14;'
                      'Database=LeelaVenkatesh;'
                      'Trusted_Connection=yes;')
cursor = conn.cursor()
for index, row in df.iterrows():
    print(row)
    cursor.execute("INSERT INTO pandas(NAME,DEPART,COLUM) values (?,?,?)", row.NAME, row.DEPART, row.COLUM)
    conn.commit()
    cursor.close()

我收到以下错误:

Traceback (most recent call last):
  File "C:/Users/lrangu/PycharmProjects/pythonProject/PANDAS.py", line 10, in <module>
    cursor.execute("INSERT INTO pandas(NAME,DEPART,COLUM) values (?,?,?)", row.NAME, row.DEPART, row.COLUM)
pyodbc.ProgrammingError: ('Invalid parameter type.  param-index=0 param-type=numpy.int64', 'HY105')

根据您得到的错误:

pyodbc.ProgrammingError: ('Invalid parameter type. param-index=0 param-type=numpy.int64', 'HY105')

参数(row.NAMErow.DEPARTrow.COLUM)中的部分元素numpy.int64不能直接作为[=]的参数29=] 语句。因此,在执行 SQL 语句之前,您需要确保所有参数都是正确且受支持的类型

解决方案

将数据类型指定为 Int64:

df = pd.read_csv("C:\PYTHON\csv.csv", dtype="Int64")