【发布时间】:2020-07-19 02:16:54
【问题描述】:
所以总的来说,我对 python 还是很陌生,我正在尝试按照教程来规范化和缩放我的所有数据;但是,我不断收到错误消息。我正在将 Scikit-learn 与熊猫一起使用。我已经四处搜索并尝试了几乎所有我能想到的,但我仍然收到此错误。
我一直收到这个错误,这可以追溯到 preprocessing.scale:
ValueError: Input contains infinity or a value too large for dtype('float64').
取消错误的列的最小值为-10.3800048828125,最大值为10.209991455078123。所有数据类型均为float64 或int64(虽然不在本列中)。我尝试了多种方法来摆脱无穷大和 NaN,但它们似乎都没有奏效。如果有人有任何建议,将不胜感激!
出现问题的代码在这里:
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)
【问题讨论】:
-
0 和非零值之间的百分比变化是多少?
-
^^^ 这工作谢谢!我错过了这个。
标签: python python-3.x pandas scikit-learn