我正在嘗試將帶有多張作業表的大型 excel 檔案匯入我的 sql 服務器,但問題是它花費了太多時間,有什么方法可以提高效率或以更好的方式進行。我有點新這種語言,所以任何幫助都將不勝感激。這是我的代碼:
#taking file input and reading it
filename = input("Input the Filename: ")
dfs = pd.read_excel(filename, sheet_name=None)
#my main function
d = {k: v[['SR_NO', 'NTN']].values.tolist()
for k, v in pd.read_excel(filename, sheet_name=None).items()
}
for k, v in dfs.items():
cols = ['SR_NO', 'NTN']
dfs = pd.read_excel(filename, usecols=cols, sheet_name=None)
records = pd.concat(df for df in dfs.values()).to_numpy().tolist()
d[k] = records
#for test sheetnames
print (d.keys())
#cursor connection to insert records
try:
cursor = conn.cursor()
cursor.executemany(sql_insert, records)
cursor.commit();
except Exception as e:
cursor.rollback()
print(str(e[1]))
finally:
print('Task is complete.')
cursor.close()
conn.close()
uj5u.com熱心網友回復:
我可能誤解了你的意圖,但我懷疑你所需要的就是這個。讀取檔案一次。并且for回圈已經在通過 dfs 值進行列舉,因此您不需要內部的另一個回圈。而且你不需要concat,如果你只有一件事。
filename = input("Input the Filename: ")
dfs = pd.read_excel(filename, usecols=['SR_NO','NTN'], sheet_name=None)
d = {}
for k, v in dfs.items():
d[k] = v.to_numpy().tolist()
print (d.keys())
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/415094.html
標籤:
