我正在從幣安 API 中提取加密貨幣資料并將其存盤在資料庫中,它可以作業,但是如何解決資料庫中的重復項?如果我第二次運行 for 回圈,它會引發
ValueError:表“'BTCUSDT' 已經存在。”
如何阻止它創建一個新表并僅插入一個值,如果它不存在,則使用時間戳作為鍵?
engine = create_engine('sqlite:///Cryptoprices3.db')
def getminutedata(symbol, lookback):
frame = pd.DataFrame(client.get_historical_klines(symbol,'1m',lookback ' days ago UTC' ))
frame = frame.iloc[:,:6]
frame.columns = ['Time','Open','High','Low','Close','Volume']
frame[['Open','High','Low','Close','Volume']] = frame[['Open','High','Low','Close','Volume']].astype(float)
frame.Time = pd.to_datetime(frame.Time, unit='ms')
return frame
for coin in coins:
getminutedata(coin,'2').to_sql(coin, engine, index=False)
uj5u.com熱心網友回復:
您是否嘗試過熊貓的“drop_duplicates”方法?
frame.drop_duplicates() 應該考慮到這一點。
uj5u.com熱心網友回復:
您可以傳遞if_exists="append"到to_sql,這會將您的新表添加為現有表下方的行。
來源:pandas 檔案to_sql
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/399116.html
上一篇:在熊貓中繪制資料和圖形文本
