1
log_returns
行列から最初の行を削除しようとしたときに突然動かなくなりました。基本的には、NaN値を持つため、最初の行を取り除きたいです。私は喜んでisnan()
を試してみましたが、最後にnumpy.delete()
という方法で着きましたが、これは最も有望ですが、まだ目的を達成していません。行列の最初の行を削除できません
import pandas as pd
from pandas_datareader import data as web
import numpy as np
symbols = ['XOM', 'CVX', 'SLB', 'PXD', 'EOG', 'OXY', 'HAL', 'KMI', 'SE', 'PSX', 'VLO','COP','APC','TSO','WMB','BHI','APA','COG','DVN','MPC','NBL','CXO','NOV','HES','MRO','EQT','XEC','FTI','RRC','OKE','SWN','NFX','HP','MUR','CHK','RIG','DO']
try:
h9 = pd.HDFStore('port.h9')
data = h9['norm']
h9.close()
except:
data = pd.DataFrame()
for sym in symbols:
data[sym] = web.DataReader(sym, data_source='yahoo',
start='1/1/2010')['Adj Close']
data = data.dropna()
h9 = pd.HDFStore('port.h9')
h9['norm'] = data
h9.close()
data.info()
log_returns = np.log(data/data.shift(1))
log_returns.head()
np.delete(log_returns, 0, 0)
最後の行(削除する)が上記row = 0
として意味をなさない次の例外をスローし、location = 0
形状(1116,37)であるlog_returns
マトリックスの範囲の外に確実ではありません。
ValueError: Shape of passed values is (37, 1115), indices imply (37, 1116)
何について: 'log_returns = log_returns.iloc [1:]'? – MaxU
['np.delete()'](http://docs.scipy.org/doc/numpy/reference/generated/numpy.delete.html)の2番目の引数はおそらくそれがあなたの考えではありません。あなたが最初の行を捨てるだけなら、@ MaxUの提案が道です。また、 'np.nan!= np.nan'は' np.delete'の仕事をさらに困難にします。 –
MaxU - ilocメソッドが効果を発揮しました!どうもありがとう。また、Andrasに感謝します。 – skafetaur