使用python将多个csv文件导入SQL

2024-05-12 11:46:28 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,我正试图从我拥有的文件夹中导入多个csv文件(比如1200个csv文件)

我能够创建一个代码,将插入一个csv文件,但我不太确定如何才能将其更改为按代码获取多个文件,而不是每次手动更改文件名

代码如下:

import pandas as pd

# Import CSV
data = pd.read_csv (r'D:\USA-Data\USA\2007\ORATS_SMV_Strikes_20070131.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'])
df = df.fillna(0)
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()

文档的名称如下所示:

ORATS_SMV_Strikes_20070201.csv ORATS_SMV_Strikes_20070202.csv ORATS_SMV_Strikes_20070205.csv

等等

我会非常感激我能得到的所有帮助


Tags: 文件csv代码dfrowpdtickerstrike