IPython中的常量名称错误

时间:2019-08-01 05:01:34

标签: python python-3.x jupyter-notebook ipython

我是Python的新手,正努力学习。似乎我复制的这段代码的几乎每个单元都有一个错误(用于使用卡尔曼滤波器进行交易)。有人可以校对吗? 资源: https://www.marketcalls.in/python/implementation-kalman-filter-estimation-mean-python-using-pykalman-bokeh-nsepy.html

我尝试了按源复制和运行代码,但是即使逐个单元地进行操作,也会出错。我试图根据Nsepy的文档更新一些代码(get_price_history变为get_history,股票变为符号),但距离还很远。

df["date"] = pd.to_datetime(df.index)

mids = (df.Open + df.Close)/2
spans = abs(df.Close-df.Open)

inc = df.Close > df.Open
dec = df.Open > df.Close
w = 12*60*60*1000 # half day in ms

output_notebook()

TOOLS = "pan,wheel_zoom,box_zoom,reset,save"

p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=1000,      toolbar_location="left",y_axis_label = "Price",
      x_axis_label = "Date")

p.segment(df.date, df.High, df.date, df.Low, color="black")
p.rect(df.date[inc], mids[inc], w, spans[inc], fill_color='green', line_color="green")
p.rect(df.date[dec], mids[dec], w, spans[dec], fill_color='red', line_color="red")
p.line(df.date,state_means,line_width=1,line_color = 'blue',legend="Kalman filter")

p.title = "Implementation of Kalman Filter Estimation - TCS EOD chart"
p.xaxis.major_label_orientation = pi/4
p.grid.grid_line_alpha=0.3

根据源代码,我希望在上面的代码之后运行show(p),但未定义名称错误“ show”。如果相反,我在没有show(p)的情况下运行上面的代码,名称错误“ pd未定义”。常量名称错误。

1 个答案:

答案 0 :(得分:0)

@Dawson,欢迎来到SO。从某处复制一段代码时,请确保您完全理解了代码需要运行的内容,如果您是一种语言的新手,请确保在运行代码之前了解这些代码的作用。现在到您的问题: 首先:您应该安装了所有需要的库,例如大熊猫这是通过在命令行中运行以下命令来完成的:

pip install pandas 

作为旁注,如果已安装它们并且要升级它们,则可以使用

pip install pandas --upgrade

您可能需要对ipython笔记本第一个单元格中的所有库执行此操作。

然后,您应该将这些库导入笔记本:

import pandas as pd # imports the library to your code under the name pd, from now on whenever you use pd.xxx the xxx function from the pandas library is called/executed.

这些应该使问题消失。