Python 是什么导致我的代码中出现空序列?

Python 是什么导致我的代码中出现空序列?,python,min,valueerror,Python,Min,Valueerror,我正在使用一个名为trendy.py的预创建代码: 部分代码计算Max1和Max2 | Min1和Min2 对于我选择的每一家公司,我都会提供过去100天收盘价的代码 对于一些公司来说,该代码可以像预期的那样工作,但对于一半以上的公司来说,它给了我一个值错误 min2 = min(x[(min1 + window):]) ValueError:min()arg是一个空序列 所以对我来说,min1似乎是个问题。它无法计算,因此保留为空。然后一个空序列被馈送到min2 有人能看一下并告诉我您认为

我正在使用一个名为trendy.py的预创建代码:

部分代码计算Max1和Max2 | Min1和Min2

对于我选择的每一家公司,我都会提供过去100天收盘价的代码

对于一些公司来说,该代码可以像预期的那样工作,但对于一半以上的公司来说,它给了我一个值错误

min2 = min(x[(min1 + window):])
ValueError:min()arg是一个空序列

所以对我来说,min1似乎是个问题。它无法计算,因此保留为空。然后一个空序列被馈送到min2

有人能看一下并告诉我您认为是什么导致了这个问题吗?

这是一个我用作输入的示例文件(它给出了所描述的错误)

以下是守则的相关部分:

def gentrends(x, window=1/3.0, charts=True):
    """
    Returns a Pandas dataframe with support and resistance lines.
    :param x: One-dimensional data set
    :param window: How long the trendlines should be. If window < 1, then it
                   will be taken as a percentage of the size of the data
    :param charts: Boolean value saying whether to print chart to screen
    """

    import numpy as np
    import pandas as pd
    from pandas_datareader import data, wb

    x = np.array(x)

    if window < 1:
        window = int(window * len(x))

    max1 = np.where(x == max(x))[0][0]  # find the index of the abs max
    min1 = np.where(x == min(x))[0][0]  # find the index of the abs min

    # First the max
    if max1 + window > len(x):
        max2 = max(x[0:(max1 - window)])
    else:
        max2 = max(x[(max1 + window):])

    # Now the min
    if min1 - window < 0:
        min2 = min(x[(min1 + window):])
    else:
        min2 = min(x[0:(min1 - window)])

    # Now find the indices of the secondary extrema
    max2 = np.where(x == max2)[0][0]  # find the index of the 2nd max
    min2 = np.where(x == min2)[0][0]  # find the index of the 2nd min
def gentrends(x,window=1/3.0,charts=True):
"""
返回带有支撑线和阻力线的数据帧。
:param x:一维数据集
:param window:趋势线的长度。如果window<1,则
将作为数据大小的百分比
:param charts:表示是否将图表打印到屏幕的布尔值
"""
将numpy作为np导入
作为pd进口熊猫
从数据读取器导入数据,wb
x=np.数组(x)
如果窗口<1:
窗口=int(窗口*len(x))
max1=np。其中(x==max(x))[0][0]#找到abs max的索引
min1=np。其中(x==min(x))[0][0]#找到abs min的索引
#首先是最大值
如果max1+窗口>透镜(x):
max2=max(x[0:(max1-窗口)])
其他:
max2=max(x[(max1+窗口):])
#现在是民
如果min1-窗口<0:
min2=min(x[(min1+窗口):])
其他:
min2=min(x[0:(min1-窗口)])
#现在求次极值的指数
max2=np。其中(x==max2)[0][0]#查找第二个最大值的索引
min2=np。其中(x==min2)[0][0]#查找第二个min的索引

我将发布此消息,以防有人遇到此问题

我输入的数据是过去100天的收盘价。但是,如果您增加数据点的数量,那么您所经历的给定错误要少得多


从Alphavantage API中,对每日时间序列使用“完整”而不是“紧凑”

min1+window
大于
x
的任何有效索引。是否给我超出范围的数组索引?还有,你知道我能做些什么来解决这个问题吗?