繁体   English   中英

使用 pandas dataframe 将数据从 csv 加载到表时出错

[英]Error while loading data from csv to table using pandas dataframe

我有 csv 文件,当我尝试使用 pandas Z6A8064B5DF479455057D 将 CSV 加载到表时,请帮助我

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: ('无效的参数类型。param-index=0 param-type=numpy.int64', 'HY105')

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

解决方案

将数据类型指定为Int64

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM