我正在尝试将平均真实范围列添加到包含历史股票数据的数据框中。
到目前为止,我使用的代码是:
def add_atr_to_dataframe (dataframe):
dataframe['ATR1'] = abs (dataframe['High'] - dataframe['Low'])
dataframe['ATR2'] = abs (dataframe['High'] - dataframe['Close'].shift())
dataframe['ATR3'] = abs (dataframe['Low'] - dataframe['Close'].shift())
dataframe['TrueRange'] = max (dataframe['ATR1'], dataframe['ATR2'], dataframe['ATR3'])
return dataframe
Run Code Online (Sandbox Code Playgroud)
包含max函数的最后一行给出了错误:
def add_atr_to_dataframe (dataframe):
dataframe['ATR1'] = abs (dataframe['High'] - dataframe['Low'])
dataframe['ATR2'] = abs (dataframe['High'] - dataframe['Close'].shift())
dataframe['ATR3'] = abs (dataframe['Low'] - dataframe['Close'].shift())
dataframe['TrueRange'] = max (dataframe['ATR1'], dataframe['ATR2'], dataframe['ATR3'])
return dataframe
Run Code Online (Sandbox Code Playgroud)
我已经搜索了几天,试图学习如何解决该错误,或者以更好的方式进行代码处理,等等,但没有发现任何可以帮助我的方法。
在以下方面的任何帮助将不胜感激:
如何解决错误
如何以更好的方式进行编码-我并不是说我必须以这种方式进行编码,并且可能会有更好的方式来进行编码。
提前谢谢。
根据示例和亨利的帮助,我想出了以下代码来对 tkinter 树视图中的树进行排序,但它不起作用。我没有收到任何错误,但树未排序。任何帮助表示赞赏。
def treeview_sort_column(tv, col, reverse):
l = [(tv.set(k, col), k) for k in tv.get_children('')]
l.sort(key=lambda t: int(t[0]), reverse=reverse)
# ^^^^^^^^^^^^^^^^^^^^^^^
for index, (val, k) in enumerate(l):
tv.move(k, '', index)
tv.heading(col,
command=lambda: treeview_sort_column(tv, col, not reverse))
def SortTree():
columns = ('#0',)
for col in columns:
tree.heading(col, text=col,
command=lambda c=col: treeview_sort_column(tree, c, False))
Run Code Online (Sandbox Code Playgroud)