输入包含无穷大或对dtype('float64')而言太大的值错误

2024-04-19 17:09:06 发布

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

输入包含无穷大或一个对dtype太大的值('float64'),运行此代码时会出现错误。我怎样才能解决它

from sklearn import preprocessing
from tensortrade.data.cdd import CryptoDataDownload 
import pandas as pd

cdd = CryptoDataDownload()

data = cdd.fetch("Bitstamp", "USD", "BTC", "1h")

for col in data.columns:
  if col not in ['date', 'unix']:
    data[col]=data[col].pct_change()
    data.dropna(inplace=True)
    data[col] = preprocessing.scale(data[col].values)
    
print(data.head())

Tags: 代码infromimportdata错误colsklearn
2条回答

您的数据具有无限价值,请使用以下方法删除它们:

    data[col] =data[col][data[col]  != float('inf') ]
from sklearn import preprocessing
from tensortrade.data.cdd import CryptoDataDownload 
import pandas as pd

cdd = CryptoDataDownload()

data = cdd.fetch("Bitstamp", "USD", "BTC", "1h")

for col in data.columns:
  if col not in ['date', 'unix']:
    data[col]=data[col].pct_change()
    data.dropna(inplace=True)
    data[col] =data[col][data[col]  != float('inf') ]
    data[col] = preprocessing.scale(data[col].values)
    
print(data.head())

试着运行这个。您需要用您选择的数字替换Nan和Inf值

import numpy as np
from sklearn import preprocessing
from tensortrade.data.cdd import CryptoDataDownload 
import pandas as pd

cdd = CryptoDataDownload()

data = cdd.fetch("Bitstamp", "USD", "BTC", "1h")

for col in data.columns:
  if col not in ['date', 'unix']:
    data[col]=data[col].pct_change()
    data.dropna(inplace=True)
    print(data[col].tolist())
    # replace inf or nan with a number (for my example zero is selected)
    data[col] = [0 if np.isnan(x) or np.isinf(x) else x for x in data[col]]

    data[col] = preprocessing.scale(data[col].values)
    
print(data.head())

相关问题 更多 >