我正在开发一个应用程序,该应用程序从美联储获取财务数据,使用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如何才能接受整个系列?
答案 0 :(得分:0)
astype仍将其转换为float64。如何将系列转换为列表并将其映射为浮点值
list(map(float,GeneralData.value))