我正在尝试使用python和pandas将几个.csv文件加载到sql server数据库。
当我运行代码时,出现以下错误:
参数39(“”):提供的值不是数据类型float的有效示例
我没有39个参数。。。
我将非常感激能得到的一切帮助!
import pandas as pd
# Import CSV
data = pd.read_csv (r'D:\USA-Data\USA\2007\ORATS_SMV_Strikes_20070103.csv')
df = pd.DataFrame(data, columns= ['ticker','stkPx','expirDate','yte','strike','cVolu','cOi','pVolu','pOi','cBidPx','cValue','cAskPx','pBidPx','pValue','pAskPx','cBidIv','cMidIv','cAskIv','smoothSmvVol','pBidIv','pMidIv','pAskIv','iRate','divRate','residualRateData','delta','gamma','theta','vega','rho','phi','driftlessTheta','extVol','extCTheo','extPTheo','spot_px','trade_date'])
print(df)
# Connect to SQL Server
import pyodbc
conn = pyodbc.connect('Driver={SQL Server};'
'Server=WIN7-PC;'
'Database=USA;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
# Insert DataFrame to Table
for row in df.itertuples():
cursor.execute('''INSERT INTO USA.dbo.USAData([ticker,stkPx,expirDate,yte,strike,cVolu,cOi,pVolu,pOi,cBidPx,cValue,cAskPx,pBidPx,pValue,pAskPx,cBidIv,cMidIv,cAskIv,smoothSmvVol,pBidIv,pMidIv,pAskIv,iRate,divRate,residualRateData,delta,gamma,theta,vega,rho,phi,driftlessTheta,extVol,extCTheo,extPTheo,spot_px,trade_date])VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''',
row.ticker,
row.stkPx,
row.expirDate,
row.yte,
row.strike,
row.cVolu,
row.cOi,
row.pVolu,
row.pOi,
row.cBidPx,
row.cValue,
row.cAskPx,
row.pBidPx,
row.pValue,
row.pAskPx,
row.cBidIv,
row.cMidIv,
row.cAskIv,
row.smoothSmvVol,
row.pBidIv,
row.pMidIv,
row.pAskIv,
row.iRate,
row.divRate,
row.residualRateData,
row.delta,
row.gamma,
row.theta,
row.vega,
row.rho,
row.phi,
row.driftlessTheta,
row.extVol,
row.extCTheo,
row.extPTheo,
row.spot_px,
row.trade_date
)
conn.commit()
1条答案
按热度按时间3df52oht1#
我以前遇到过这种情况,导致此错误的可能原因可能是 Dataframe 中的nan值,我建议打印df并检查是否存在任何nan值,并相应地纠正数据。