【问题标题】:Input contains infinity or a value too large for dtype('float64') error输入包含无穷大或对于 dtype('float64') 错误来说太大的值
【发布时间】:2021-04-18 13:42:04
【问题描述】:

输入包含无穷大或对于 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())

【问题讨论】:

    标签: python python-3.x pandas scikit-learn tensorboard


    【解决方案1】:

    尝试运行它。您需要用您选择的数字替换 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())
    

    【讨论】:

      【解决方案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())
      

      【讨论】:

      • 我认为合并答案是最好的答案,因为我们不知道他是否要删除或替换 inf
      猜你喜欢
      • 2020-07-19
      • 2019-04-09
      • 2019-08-25
      • 2017-02-19
      • 2019-12-03
      • 2016-03-25
      • 2017-11-23
      • 2019-05-26
      相关资源
      最近更新 更多