我有以下代碼來測驗股票是否創造了新的生命周期新高。應該使用 numpy 比較生成布爾輸出。
import pandas as pd
from pandas_datareader import data as web
import numpy as np
import math
data = web.DataReader('goog', 'yahoo')
data['lifetime'] = data['High'].asfreq('D').rolling(window=999999, min_periods=1).max() #To check if it is a lifetime high
data['lifetime'] = data['lifetime'].astype(float)
data['isclose'] = np.where(math.isclose(data['High'], data['lifetime'], rel_tol = 0.003), 1, 0)
這里提供的這個解決方案迭代熊貓中的每一行來評估條件,應該可以作業,但我收到了這個錯誤。
型別錯誤:無法將系列轉換為 <class 'float'>
我做了一些查找,似乎該math函式需要一個值而不是陣列。我如何驗證是這樣的?型別錯誤:無法將系列轉換為 <class 'float'>
uj5u.com熱心網友回復:
使用numpy.isclose與陣列,這里列作業:
data['isclose'] = np.where(np.isclose(data['High'], data['lifetime'], rel_tol = 0.003), 1, 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/316454.html
