我在 Bokeh 回调函数中使用 Pandas 代码时遇到了问题。
以下是错误发生前的部分输出。我的数据框看起来正常,但我不确定为什么会出错。
time temperature
0 2016-03-17 11:00:00 4.676
1 2016-03-17 11:30:00 4.633
2 2016-03-17 12:00:00 4.639
3 2016-03-17 12:30:00 4.603
4 2016-03-17 13:00:00 4.615
5 2016-03-17 13:30:00 4.650
6 2016-03-17 14:00:00 4.678
7 2016-03-17 14:30:00 4.698
8 2016-03-17 15:00:00 4.753
9 2016-03-17 15:30:00 4.847
ERROR:bokeh.server.protocol_handler:error handling message Message 'PATCH-DOC' (
revision 1): ValueError('window must be an integer',)
以下是我从flask嵌入式示例(链接在此)更改的代码:
def callback(attr, old, new):
df = pd.DataFrame.from_dict(source.data.copy())
print df[:10]
if new == 0:
data = df
else:
data = df.rolling('{0}D'.format(new)).mean()
source.data = ColumnDataSource(data=data).data
slider = Slider(start=0, end=30, value=0, step=1, title="Smoothing by N Days")
slider.on_change('value', callback)
如果有帮助的话,我也可以包含完整的代码,但是我主要的更改只是使用doc.add_periodic_callback()定期获取新数据。
.set_index('time')
修复了我的数据框,问题解决了,然后使用 mean()。 - pbaranski