Skip to main content
 首页 » 编程设计

python之计算 Pandas 数据框中的平均真实范围列

2025年05月04日28leader

<分区>

我正在尝试将 Average True Range 列添加到包含历史股票数据的数据框中。

目前我使用的代码是:

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 

最后一行,包含 max 函数,给出了错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

我在谷歌上搜索了好几天,试图了解如何解决这个错误,或者以更好的方式编写代码等等,但没有找到任何可以帮助我的东西。

如有以下任何帮助,我们将不胜感激:

  1. 如何解决错误

  2. 如何以更好的方式编写代码 - 我并不是说我必须以这种方式编写代码,而且可能有更好的方法来完成。

提前致谢。