输入包含无穷大的值,该值对于数据类型“float64”太大

2024-04-23 11:14:36 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我对python基本上是一个新手,我正在尝试按照一个教程来规范和缩放我的所有数据;然而,我不断地得到一个错误。我正在使用Scikit与熊猫一起学习。我已经到处搜索,尝试了我能想到的一切,但我仍然得到这个错误

我一直收到此错误,可追溯到preprocessing.scale:

ValueError: Input contains infinity or a value too large for dtype('float64').

回退错误的列的最小值为-10.3800048828125,最大值为10.209991455078123。所有数据类型都是float64int64(但不在此列中)。我尝试过多种方法来消除无穷和非,但似乎都不起作用。如果有人有任何建议,将不胜感激

出现问题的代码如下所示:

def preprocess_df(df):
    df = df.drop('future', 1)
    df.replace([np.inf, -np.inf], np.nan)
    df.fillna(method='bfill', inplace=True)
    df.dropna(inplace=True)

    for col in df.columns:
        print("Trying Column: " + col)
        if col != "target":
            df[col] = df[col].pct_change()
            df.dropna(inplace=True)
            df[col] = preprocessing.scale(df[col].values)
    df.dropna(inplace=True)

    sequential_data = []
    prev_days = deque(maxlen=SEQ_LEN)

    for i in df.values:
        prev_days.append([n for n in i[:-1]]) #appends every column to the prev days list, except for target (we don't want that to be known)
        if len(prev_days) == SEQ_LEN:
            sequential_data.append([np.array(prev_days), i[:-1]])

    random.shuffle(sequential_data)

Tags: intruedffordata错误npcol