【问题标题】:How to compare all values of a list in python?如何比较python中列表的所有值?
【发布时间】:2023-04-09 18:49:02
【问题描述】:

这是我的代码:

ticker = 'NFLX'
price = get_data(ticker, start_date='2020-01-01', end_date=None, index_as_date=bool, interval ='1d')
price.to_csv(r'D:\Python Stuff\pythonProject\NFLX.csv')
df = pd.read_csv('NFLX.csv')
price_list = df['adjclose']

def SMA():

    SMA_days = 20
    sma = price_list.rolling(window=SMA_days).mean()
    combined = pd.DataFrame()
    combined['adjclose'] = price['adjclose']
    combined['SMA'] = sma
    return sma
simple_moving_average = SMA()
    
lowest_rsi = min(relative_strength_index[-6:])
lowest_rsi_index = np.argmin(relative_strength_index[-6:])
print(lowest_rsi_index)
print(lowest_rsi)

print(price_list[-6:])
print(simple_moving_average[-6:])

if all(np.array(list(price_list[-6:])) > np.array(list(simple_moving_average[-6:]))):
    if abs(price_list[-1] - simple_moving_average[-1])<=1.5:
        if lowest_rsi < 50:
            main()

当我运行代码时,错误出现在以下行: if all(np.array(list(price_list[-6:])) > np.array(list(simple_moving_average[-6:])) )

我希望 if 条件在 price_list 中所有元素的所有值都大于 simple_moving_average 中所有元素的值时继续。我该如何解决这个问题?

【问题讨论】:

  • 这里有错字吗:if all(np.array(list(price_list[-6:])) > np.array(list(simple_moving_average[-6])))。 simple_moving_average[-6]) 应该是 simple_moving_average[-6:])?
  • 是的,我的错。我修好了

标签: python pandas list numpy series


【解决方案1】:

您可以将 if 语句更改为 if (price_list[-6:] &gt; simple_moving_average[-6:]).all():

【讨论】:

  • 我明白了:ValueError:一个系列的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
  • 如果 price_listsimple_moving_average 是 pd.Series 的类型,复制并粘贴我的代码应该可以工作。否则,请检查这两个变量的数据类型。
  • 它们都是 pd.Series 类型
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
  • 2021-04-10
  • 2017-03-12
相关资源
最近更新 更多