如何将panda的dataframe保存到sqlite3数据库中,同时保留datetime作为标识符?

o7jaxewo  于 2023-08-06  发布在  SQLite
关注(0)|答案(1)|浏览(102)

当我创建数据集时,最初它的第一列是Date

print("saving this training set for " + symbol)
print (thisDataset)
dbHelper.saveTrainingSet(thisDataset, symbol)

字符串
在dbHelper中:

def saveTrainingSet(trainingSet, symbol):
    conn = sqlite3.connect('my_database')
    c = conn.cursor()
    c.execute('CREATE TABLE IF NOT EXISTS trainingsets_' + symbol + ' (' + readColumnsForSaving() +')')
    conn.commit()
    trainingSet.to_sql('trainingsets_' + symbol, conn, if_exists='replace', index = False)


的数据
当我加载数据集时,它不再将日期作为标识符列。我该如何保存它?

returnedTrainingset = dbHelper.getTrainingSet(symbol)
print(returnedTrainingset)


在dbHelper中:

def getTrainingSet(symbol):
conn = sqlite3.connect('technical_analysis_database')
c = conn.cursor()
c.execute('SELECT * FROM trainingsets_' + symbol)
return pd.DataFrame(c.fetchall(), columns=[readColumnsForLoading())



列列表很长,所以我只是用两个不同的readColumns...()方法占位符替换它。这两个列字符串都不包含Date列(当我尝试将其添加到这两个列时,用于加载的列抛出了一个异常,说它们的列太多了。
如何将包含日期标识符列的原始数据集保存到sqlite3数据库表中?我怎样才能找回它?

zour9fqk

zour9fqk1#

尝试修改

trainingSet.to_sql(...

字符串

trainingSet.reset_index().to_sql(...)
# or
# trainingSet.to_sql(..., index=True)

相关问题