我正在开发一个应用程序,它从美联储获得金融数据,使用Flask-SQlalchemy将其存储在一个SQlite数据库中,然后将数据提供给我的前端仪表盘(Bokeh)。
我所使用的数据结构如下。
date realtime_end realtime_start value
0 1962-01-02 2018-08-02 2018-08-02 4.06
1 1962-01-03 2018-08-02 2018-08-02 4.03
2 1962-01-04 2018-08-02 2018-08-02 3.99
3 1962-01-05 2018-08-02 2018-08-02 4.02
4 1962-01-08 2018-08-02 2018-08-02 4.03
5 1962-01-09 2018-08-02 2018-08-02 4.05
6 1962-01-10 2018-08-02 2018-08-02 4.07
7 1962-01-11 2018-08-02 2018-08-02 4.08
8 1962-01-12 2018-08-02 2018-08-02 4.08
9 1962-01-15 2018-08-02 2018-08-02 4.10
10 1962-01-16 2018-08-02 2018-08-02 4.13
11 1962-01-17 2018-08-02 2018-08-02 4.12
12 1962-01-18 2018-08-02 2018-08-02 4.11
13 1962-01-19 2018-08-02 2018-08-02 4.11
14 1962-01-22 2018-08-02 2018-08-02 4.09
15 1962-01-23 2018-08-02 2018-08-02 4.11
16 1962-01-24 2018-08-02 2018-08-02 4.10
17 1962-01-25 2018-08-02 2018-08-02 4.11
18 1962-01-26 2018-08-02 2018-08-02 4.11
19 1962-01-29 2018-08-02 2018-08-02 4.12
20 1962-01-30 2018-08-02 2018-08-02 4.11
21 1962-01-31 2018-08-02 2018-08-02 4.10
22 1962-02-01 2018-08-02 2018-08-02 4.09
23 1962-02-02 2018-08-02 2018-08-02 4.08
24 1962-02-05 2018-08-02 2018-08-02 4.07
25 1962-02-06 2018-08-02 2018-08-02 4.06
26 1962-02-07 2018-08-02 2018-08-02 4.07
27 1962-02-08 2018-08-02 2018-08-02 4.07
28 1962-02-09 2018-08-02 2018-08-02 4.05
29 1962-02-12 2018-08-02 2018-08-02 NaN
在我的SQLalchemy模型中,我试图从 "值 "列中存储数据,如下所示。
value = db.Column(db.Float)
它目前是 float64 数据类型,但是 SQLite 需要它是一个通用的 Python float 类型(而不是 NumPy,它是 float64)。我正试图将 "值 "列转换为通用的Python浮点值,如下所示。
ValueData = GeneralData['value'].astype(float) #slices the 'value' column from the dataframe
ValueForSQL = Graph(value = ValueData) #stores values in the 'value' column of SQLite table.
然而,我在运行该代码时得到以下错误。"StatementError不能将系列转换为'float'类"。
这个问题似乎是SQlite不能处理系列或数据列表。例如,如果我使用GeneralData['value'].iloc[3],它可以正常工作。这是因为数据已经是float64格式的了。
SQlite接受这个,因为它是一个单独的数据点,而不是一个列表或系列。然而,'值'是由成千上万的值组成的列。怎样才能让SQlite接受整个系列?